『プロになるためのWeb技術入門』の重要箇所をまとめた--Lesson3

皆様こんにちは、もしくははじめまして。IDEです。
今日の記事はLesson3について。
HTTP通信をメインに学んでいきます。
書籍はこちらから。

転載にならないか、恐る恐る書いているのでこれはダメじゃない!?やこうした方がもっといい記事になるよ!という感想がありましたらぜひコメントをいただけると嬉しいです。

目次

  1. HTTP通信について
  2. 情報はどのように届けられるのか?(IPアドレス・DNS)
  3. 情報を探し終わった後、受け取るまで(ポート)
  4. 情報の受け渡しについて(GET/POST)
  5. まとめ

HTTP通信について

情報のやりとりを行うHTTP通信には、各通信ごとに記録が残されています。
そのログを見れば、それぞれの通信の内容がわかります。
1行目に記載されている部分をHTTPリクエスト・ライン(リクエスト)/HTTPステータス・ライン(レスポンス)と呼びます。

リクエスト・ライン

  GET http://quagsire.jp HTTP/1.1
 |---|------------------|--------|
|1.メソッド|    2.URI      |3.HTTPバージョン|

ステータス・ライン

 HTTP/1.1 200 OK
 |-------|---|---|
|1.HTTPバージョン|2.ステータスコード|3.レスポンスフレーズ|

ログの2行目以降には詳細が書かれています。
リクエストの詳細

ステータス・ライン

  • メッセージ・ヘッダ(レスポンスに関する詳細)
  • メッセージ・ボディ(レスポンスの内容。HTMLならHTMLを、GIFやJPEGなら画像を表示)

情報はどのように届けられるのか(IPアドレス・DNS)

IPアドレス(インターネット上の住所。URLをコンピューターがわかるようにした数値)をもとにTCP/IPがパケットと呼ばれる単位に情報を分割して届けます。
ここで2点、疑問が生まれます。

  • なぜ情報を分割する必要があるのか? 大量の情報を一気に送信しようとすると、失敗した時にすべて情報を送り直さなければいけません。
    小分けにすれば、送り直す事態が発生したとしても、問題のある箇所のみ再送信すれば良いので労力が最小限で済みます。
  • URLからどのようにIPアドレスを取得するのか? DNSサーバという、ドメイン名とIPアドレスの対応表を持ったコンピューターを利用して取得します(この仕組みをDNSと言います)
    jpやcomといった最上位のドメイン(トップレベルドメイン)にはそれぞれのサーバーが存在します。
    複数あるTLDサーバーを管理するサーバーがルートサーバーです。 情報の取得の流れは、以下のようになります。

    ルートDNSサーバ → 各TLDのDNSサーバ → DNSサーバ

    尚、IPアドレスは2種類存在します。

  • グローバルIPアドレス インターネット上で唯一、他と重複することがないアドレス。電話で言うところの固定電話。
  • プライベートIPアドレス PCとプリンター間など、他のネットワークに接続されていないネットワーク(プライベートネットワーク)を使用する際に使うアドレス。電話で言うところの内線。


    情報を探し終わった後、受け取るまで(ポート)

    リクエストで情報を小分けパックにして送ったら、小分けパックされた情報がレスポンスで返ってきます。
    TCP/IPがパケットを元の情報に再構築した後、どのプロトコルを使用するかを決めるのがポート番号です。
    インターネットで情報を受け取るには、IPアドレスで宛先を、ポート番号でどのような処理をするかを指定しなければいけません。
    よく使われているプロトコルは、標準のポート番号が決められています。(ウェル・ノウン・ポート)

    情報の受け渡しについて(GET/POST)

    情報の受け渡しにはGETメソッドとPOSTメソッドが利用できます。

     GET   POST 
    パラメータの格納 URL メッセージ・ボディ
    セキュリティ 低い 比較的高い
    パラメータの長さ 制限あり 制限なし
    パラメータの保存・再現 しやすい
    情報の共有がしやすい
    しにくい
    副作用がない
    (同じ要求を繰り返しても同じ結果が得られる)
    ない寄り
    サーバへの影響はほぼない
    ある寄り
    決済処理等システムになんらかの作用がある
    使われている機能 検索機能 ログイン機能、決済機能

    アルファベット以外で表示される言語(日本語など)で検索する際には、パーセントエンコードと呼ばれる、文字列を16進数で表された各値の頭に%をつけた文字コードで表したものに変換されて処理されます。
    (Chromeなどで検索結果のURLなどに日本語が表示されているのは、ブラウザの機能で見やすいように変換してくれています。)

    まとめ

    本記事では、『プロになるためのWeb技術入門』のLesson3をまとめていきました。
    インターネット上での情報のやり取りでよく使われているHTTPについてここでは詳細に学んでいきました。
    通常インターネットを利用する上で全く意識してこなかった、いわゆる裏の仕組みの部分。
    今後自分が開発していく上で、ここで学んだ知識を踏まえて開発できるようにしっかりと仕組みを理解していきます。
    最後までお付き合いいただいた方、ありがとうございました。