2014年11月10日月曜日

HTTPヘッダーの情報

時々レスポンスデータの解析を行いますが、その都度、情報を調べないといけないので、
メモで必要な情報を残しておきます。

参考URL :
http://web-tan.forum.impressrd.jp/e/2010/01/12/7156

●HTTPリクエスト
1)1行目:HTTPリクエスト行
メソッド」「URL」「HTTPのバージョン」の3つの情報が含まる。
メソッド:GET=HTTPリクエストでは「データ本体」は送られない
     POST=HTTPヘッダーの後にデータ本体が続きます

 2)2行目以降:HTTPヘッダー
ユーザーエージェント名(User-Agent) :  
 ブラウザの種類やOSの情報
・リファラ(Referer) : 
 どのページから発生したリクエストなのかを示します。
 例えば、ページAにあるリンクをクリックしてページBに行った場合に、ページBへのHTTPリクエストにリファラーとしてページAが入る
・更新されていたら(If-Modified-Since)/同じでなければ(If-None-Match) :
 ブラウザは、一度表示したデータを「ローカルキャッシュ」として保存しておき、同じデータは何度も通信して取得しなくてもいいようにしています。そのときの情報となります。
・ クッキー(Cookie)
・受け取り希望(Accept、Accept-Language、Accept-Encoding、Accept-Charset)

● HTTPレスポンス
 「レスポンス状態行」「HTTPヘッダー」「データ本体」の3つのパートがあります。

1)1行目:レスポンス状態行 
 ここには、「HTTPステータスコード」などが含まれます。

200番台は成功
 200:OK、データを送ります

300番台はリダイレクト
 301:新しい場所から取得してください(今後もずっと)
 302:新しい場所から取得してください(今回だけ)
 304:変更されていません(データ本体は送られない)

400番台はクライアント側のエラー
 401:ユーザー認証が必要です
 403:アクセスが禁止されています
 404:見つかりませんでした

500番台はサーバー側のエラー
 500:内部エラー
 503:現在はサービス提供不可能



2)HTTPヘッダー 
 各種の状態を示す情報が入れられている部分です。
・コンテンツタイプ(Content-Type)
  データがHTMLなのか画像なのかや、文字コードなどの情報。
・ 再利用期限(Expires)
 取得したデータを再度サーバーに問い合わせなくてもブラウザが再利用していい期限(キャッシュの制御に使われる)。
・データの最終更新日時(Last-Modified)やエンティティ情報(ETag)
 次回同じデータをリクエストする際に、これらの情報を使って更新されているかどうかを確認します。
・キャッシュ制御(Cache-ControlやPragma)
 ブラウザや通信を橋渡しするプロキシが、データのキャッシュをどう扱うかの情報。
・接続状況(Connection)
 接続を持続するのか(keep-alive)、毎回接続を切断するのか(close)。ブラウザもサーバーもHTTPバージョン1.1の持続接続(keep-alive)を使える場合、通信のやりとりが効率良くなります。
・移動先(Location)

0 件のコメント:

コメントを投稿