【学習記録】『イラスト図解式 この一冊で全部わかる Web技術の基本』

プログラミング

どうもです。タドスケです。

dockerやAWSの勉強を進める中で、Linuxと並んでまだ足りないと感じた知識が「Web技術」です。

業務では一切関わることのない領域。

応用情報技術者のネットワークの項目で軽く学んだものの、Webアプリケーションに関する基本知識が足りないと感じました。

そんな中で見つけたのがこの本。

Web周りの知識をいい感じに補完できたので、学んだ内容を簡単にまとめておきます。

※応用情報技術者やネットワーク基礎でも触れられている内容は省略して、この本で新しく学べたことに絞っています。




Web技術とは

REST

  • 統一インターフェース:統一されたやり取り(HTTPなど)
  • 接続性:情報にリンクを含められる
  • アドレス可能性:全ての情報を一意なURLで表す
  • ステートレス性:前の状態に依存しない

セマンティックWeb

情報に意味を持たせる。

SEOなどで利用しているメタデータがこれにあたる。

HTTPでやり取りする仕組み

HTTPメッセージ

HTTPメッセージにはリクエストとレスポンスがある。

メッセージ内にはヘッダー部とボディ部が含まれる。

GETはURLに、POSTはメッセージボディにデータを含める。

HTTPバージョンの違い

1.1

サーバーとのコネクションを毎回切断しないことで、接続のやり取りにかかる時間が減る。(キープアライブ)

複数のメッセージをまとめて送って順番に処理する。(パイプライン)

2

ストリームによる多重化を行い、メッセージの到着順番が前後しても待ち時間が発生しない。

バイナリ形式をそのまま送れる。

ヘッダーの差分だけを送る。

HTML内に含まれる画像データなどをサーバー側で判断して送る。

Cookie

ステートレスな実装では前のやり取りを保存できないので、代わりにCookieを使う。

Cookieには有効期限が設定可能。

設定しない場合は処理が終わったタイミングで勝手に消える。

セッション

セッションIDを利用して同一ユーザーからのリクエストかどうかを見分ける。

データ形式

DOM

プログラムからHTMLを操作する仕組み。

HTMLをツリー構造のデータとして扱う(DOMツリー)。

フィード

更新履歴を配信する仕組み。

RSSが代表的。

ポッドキャストはRSSに音声データを流している。

Webアプリケーションの基本

3層構造(アーキテクチャ)

  • プレゼンテーション層(Webサーバー、ブラウザ)
  • アプリケーション層(アプリケーションサーバー)
  • データ層(DBサーバー)

それぞれの置き場所を分けたり分散させたりすることで、パフォーマンスを上げたり機器故障に備えたりすることができる。

Ajax

JavaScriptがWebサーバーと通信し、DOMの機能を利用してHTMLの中身を書き換える。

Webシステムの構築と運用

要件定義→サーバー設計→インフラ構築→運用までの一通りの流れ。

クライアントアプリと大きく違うのは、セキュリティの重要性とインフラ構築の部分。

まとめ

Web特有の用語が多くあり、「何となく知ってはいるけど、詳しくは説明できない」ものが多かったので、この機会に正しく知ることができたのは良かったです。

次はこれまでの知識を生かして、実際に簡単なWebアプリケーションを作ってみたいと思います。

その最初の一歩として、

Linuxのローカル環境にApacheサーバーを立てて、Vimエディタで作った適当なhtmlファイルを表示させる。

に挑戦してみます。

コメント

タイトルとURLをコピーしました