ゴミ捨て場

命を大事にしな

ネットワークはなぜつながるのか 2

第1章 Webブラウザがメッセージを作る

HTTPリクエスト・メッセージを作成する

  • まずユーザがブラウザにURLを入力するところがスタートとなる。
  • URLは以下のような構成となっている。
    • プロトコル(httpとかftpとか)
    • ユーザ名(普通は省略されている)
    • パスワード(普通は省略されている)
    • サーバドメイン
    • ファイルパス
  • ブラウザはURLを解読し、上記の要素を読み取る。
  • ファイル名が省略されている場合は、サーバ側に設定されたデフォルトファイル(ケースによるがindex.htmlとかdefault.htmとか)を指定しているものとする、というルールが存在する。
  • HTTPリクエスト・メッセージには「何を」「どうする」のかが書かれる。
  • 「何を」に相当するものをURIと呼ぶ。URLで指定しているファイルパスのこと。
  • 「どうする」に相当するものをメソッドと呼ぶ。GETやPOSTなど。他は殆ど使わない。
  • URLを解読し、webサーバとファイル名がわかったらブラウザはHTTPメッセージフォーマットに従ってリクエスト・メッセージを作成する。
  • リクエストメッセージの1行目をリクエストラインと呼び、この1行でリクエストの内容がだいたい分かるようになっている。
  • 2行目からメッセージヘッダが入り、リクエストの付加的情報(DateとかAuthoriztionとかUser-Agentとか)がはいる。
  • メッセージヘッダの後に、メッセージボディ部が始まり、ここにはPOSTメソッドの場合はサーバに渡す情報がはいる。なおこの部分はバイナリデータとなっている。

リクエストを送るとレスポンスが帰ってくる

  • レスポンスメッセージのフォーマットも基本的にはリクエストメッセージと同じ。
  • ただし1行目が異なり、サーバ側の処理が正常終了したのかエラーが起きたのかを示すステータスコードとレスポンスフレーズが書かれている。
  • レスポンスメッセージが返ってくれば、ブラウザはそこからデータを取り出し画面に表示する。
  • ページが文章だけであれば、リクエストとレスポンスの一度のやり取りだけで済む。
  • 画像などが張り込んでいる場合は、文章の中にタグという制御情報が埋め込まれており、ブラウザは一旦文章を全て表示した後、タグが埋め込まれている箇所を空けておき、画像取得のリクエストを送る。
  • リクエスト・メッセージに記載するURIは1つと決まっているため、画像取得は1回ずつしか行えない。したがって、一つのページに画像タグが3つある場合は、文章と画像3つで合わせて4つのリクエストを送ることになる。