📚
【3分間HTTP&メールプロトコル基礎講座】第6、7回メッセージヘッダの種類と役割、メッセージヘッダ
メッセージヘッダの種類と役割
メッセージヘッダの役割
- HTTPのやりとりに情報をつけるため
- リソースの更新日
- データ料
- 使用しているメディア
- UAの種類
- 認証
- 中継
メッセージヘッダの種類
メッセージヘッダ: ヘッダ名+内容+改行
- メッセージヘッダは必要な数だけ開始行の後ろに入れれる
- 最後に改行コードを入れる
- メッセージヘッダの種類には中継された場合の扱いと、メッセージヘッダの内容によって分類される
中継された場合の扱いによるメッセージヘッダの分類
エンドツーエンド
- 中継されてもメッセージヘッダがが変更されないもの
ホップバイホップ
- 中継サーバで変更されたり、中継サーバだけで使用されたりする
メッセージヘッダの内容による分類
- メッセージヘッダの内容は、一般、要求、応答、エンティティの4種類が存在する。
一般
- リクエスト・レスポンスの両方で使用されるメッセージ。
- 代表例はキープアライブで使用するConnectionなど
要求
- リクエストだけで使用
応答
- レスポンスだけで使用
エンティティ
- ボディにあるリソースの長さや使われているメディア
メッセージヘッダ
代表的なメッセージヘッダ
Host
- HTTP1.1のリクエストで唯一必須のメッセージヘッダ
- 要求ヘッダのエンドツーエンドメッセージヘッダ
- リクエストを送るサーバのドメイン名とポート番号を示す
- ポート番号がWell-Knownの80番の場合はポート番号を省略できる。
- リクエストのリクエストURIが相対パスの場合、このHostに書かれているサーバのリソースと判断される
User-Agent
- リクエストしてきたUAをサーバ側で判断し、表示させるページを変える時などに使用する
- 携帯電話の場合、そのキャリアが使用するIPアドレスが決まっているから、送信元IPアドレスを見て切り替える方式もある
Referer
- 要求ヘッダのエンドツーエンドメッセージヘッダ
- リクエストURIの参照元ページのURI
- リクエストURIにハイパーリンクしたペジのURI
- そのページへどこからハイパーリンクされてきたかという情報を集めることができる
- webサイトの「アクセス解析ツール」とかで確認できる「リンク元」「アクセス元」など
- リンクされた場合にのみつけられる。
- 直接URIを入力した場合や、ショートかっと(ブックマーク)から選んだ場合はつけられない。
Content-Length
- エンティティヘッダのエンドツーエンドメッセージヘッダ
- リクエスト、レスポンスどちらでも使われる
- ボディのデータ長を示すメッセージヘッダ
- レスポンスはリクエストのURIのリソースの長さ
- リクエストのメソッドがPOSTの場合、ボディに入っている、「投稿」するデータの長さ
Accept
- エンドツーエンド
-
要求するリソースメディアタイプを示す
- メディアタイプはソースの中身がなんであるかを示すもの
- テキストファイル、画像ファイル、音声ファイル、動画ファイルなど
- タイプ/サブタイプの形で記述される
- UAはAcceptで利用可能なメディアタイプをサーバに通知
Content-type
- エンドツーエンド
- 応答するリソースメディアタイプを示す
- サーバはレスポンスに入れたリソースのメディアタイプをContent-typeで指定する
- レスポンスでの必須ヘッダ
例えばUAがAcceptで送ったメディアタイプと、サーバがレスポンスできるリソースのメディアタイプが違うと、406 not Acceptableというステータスコードで利用出来ないことを通知する
Discussion