Real World HTTPの第1章1.4 HTTPの先祖(1)を読んだ
HTTP/0.9からHTTP/1.0への道のり
HTTP0.9
文書をブラウザからリクエストしてサーバーがデータを返すというウェブ技術の基本骨格はこの時点で完成していたと言える。 しかし、このプロトコルではできないことがいくつか存在した。
HTTP/0.9でできないこと
1つのドキュメントを送る機能しかなかった
通信される全ての内容はHTML文書であるという想定であったため、ダウンロードするコンテンツのフォーマットをサーバーから伝える手段がなかった
新しい文書を送信したり、更新したり、削除することはできなかった
HTTPにおける、わかりやすい基本的なヘッダー
ヘッダーは、「フィールド名: 値」という形式で本文の前に付加されていて、本文以外の全ての情報が含まれる
クライアントが送るヘッダーと、サーバーから送られてくるヘッダーの形式は全く同じである。ただし、使用されるフィールド名が異なり、ヘッダーの中には、リクエスト時のみに使われるもの、レスポンス時のみ使われるもの、両方で使われるものがある
クライアント → サーバー
User-Agent
- クライアントが自分のアプリケーション名を入れるところ。サーバーはここを見てレスポンスを切り替えることがある。
Authorization
サーバー → クライアント
Content-Type
- サーバーが返したファイルの種類を指定する。ここにはMIMEタイプと呼ばれる識別子(文字列、text/htmlなど)を記述する
Content-Length
- ボディのサイズ
Content-Encoding
- 何らかの圧縮が行われた場合に圧縮形式を説明する
Date
- ドキュメントに日時
MIMEタイプ
ファイルの種類を区別するための文字列で、元は電子メールのために作られた。
ブラウザはファイルの種類に合わせて画面に表示したり、保存ダイアログを出したりといった機能を提供する。このときにファイルの種類を表す識別子がMIMEタイプ。
text/html
のように大項目/詳細
という表記をする。
電子メールとの違い
比較
ヘッダー + 本文という構造は同じ
HTTPのリクエストでは先頭にメソッド + パスの行が追加される
> GET /samplepath HTTP/1.0
- HTTPのレスポンスでは先頭にステータスコードが追加される
< HTTP/1.0 200 OK