まさ@ブログ書き込み中

まさ@ブログ書き込み中

まさの旅、英語、プログラミング、プライベートについて、色々記録しています。

HTTPを今までより掘り下げよう②【Webを支える技術 第三部 後半】

 

こんばんは、まさです。

トポセシアでヘッドホンをしながらMacでタタタターンしている人がいたら、多分それは僕です。

 

さて、第三部の後半の章を読みましたが、難しい。

 

じっくり書きたいので、今日ばかりは30分ルールを解放して、

45分以内(20時まで)に書こうとおもっています。

 

さあ、始めましょう。

 

 

HTTPレスポンスのステータスコード

HTTPをもっともっとくやしく【Web技術入門3】 - まさ@ブログ書き込み中でも紹介しましたが、HTTPリクエスト・レスポンスの内容をもう一段階踏み込んで具体化すると以下のようになります。

 

  • HTTPリクエストの中身はリクエストラインメッセージヘッダによって構成されている
  • HTTPレスポンスの中身はステータスラインメッセージヘッダとメッセージボディによって構成されている

 

この項ではHTTPレスポンスの中のステータスラインの中にあるステータス・コードについてまとめます。

 

ステータスラインとは

ステータスラインとは(HTTP)レスポンスメッセージの1行目にあります。こういうやつ。

 

HTTP/1.1 200 OK

 

この中の「200」がステータスコードです。

 

ステータスコードの分類

ざっくりまとめるとこんな感じ。

  • 1xx:処理中
  • 2xx:成功
  • 3xx:リダイレクト
  • 4xx:クライアントエラー
  • 5xx:サーバエラー

 

 

HTTPヘッダ

HTTPステータスコードは簡単にまとめておきました。

やっかいなのはHTTPヘッダです。

理由はシンプルに、ヘッダの情報が多いからです。

 

ちなみに「メッセージヘッダ」「HTTPヘッダ」というように表現が混在していますが、どちらも同じ意味なので、「ヘッダ」という風に統一しておきますね。

また、ここでHTTPリクエスト・レスポンス両方のヘッダについて説明していきます。

 

ヘッダの重要性

ヘッダは大切。なぜなら、メッセージボディに対するメタデータを表現するし、クライアントやサーバはヘッダをみてメッセージに対する挙動を決定するからです。

 

具体的には

  • メディアタイプや言語タグの設定
  • リソースへのアクセス権を設定する認証やキャッシュなどの機能の実現

などはヘッダの利用が関わってくるからです。

 

ヘッダの種類

音速で紹介していきます。

  • 日時
    →Date, Expires
  • MIMEメディアタイプ:メッセージでやりとりするリソースの表現の種類の指定
    →Content-Type, charset
  • 言語タグ
    →Content-Language
  • コンテントネゴシエーション
    →Accept(処理できるメディアタイプを伝える), Accept-Language
  • Content-Lengthとチャンク転送
    →Content-Length(ボディの長さ指定), Transfer-Encoding: chunked(ボディを分割して転送)
  • 認証
    ステータスコードに401 Unauthorized, ヘッダにAuthenticate
    Basic認証の際にはリクエストヘッダにAuthorization
    →Digest認証の際にはサーバのレスポンスのWWW-Authenticateヘッダ(またの名を「チャレンジ」)を利用してクライアントは次回のリクエストを組み立てる
  • キャッシュ
    →Pragma(no-cache), Expires, Cache-control(より詳細な設定)

 

 

今回はここまでです。

 

ではまた。