今日は、少し技術的な話ですが、Web担当者も知っておくといい知識を。テーマは「HTTPヘッダー」です。知らなくてもWebサイトは作れますが、知っておくとサイト上での仕組み作りの視野が広がるかもしれません。
ブラウザでWebページを表示するときに、ブラウザはWebサーバーと通信しています。そのときに使われるのが「HTTP」というルールです。
HTTPは「HTTPリクエスト」と「HTTPレスポンス」に分けて考えます。ブラウザがサーバーに「このページを見たい」と頼む通信が「HTTPリクエスト」で、そのリクエストに応えてサーバーがブラウザに返す通信が「HTTPレスポンス」です。
HTTPリクエスト
まず、ブラウザ → サーバーの「HTTPリクエスト」から説明しましょう。
HTTPリクエストはブラウザが送るものですから、HTTPリクエストを作るのはブラウザです。サーバーは、受け取ったHTTPリクエストの内容からどんな情報を返すかを判断します。
HTTPリクエストには「HTTPリクエスト行」「HTTPヘッダー」「データ本体」の3つのパートがあります。
・HTTPリクエストの1行目が、リクエスト内容を示す「HTTPリクエスト行」です。ここには、「メソッド」「URL」「HTTPのバージョン」の3つの情報が含まれています。
「メソッド」はWebではほとんどの場合「GET」で、この場合、HTTPリクエストでは「データ本体」は送られません。メソッドが「POST」の場合(フォームから情報を送信するなどでmethod="POST"が指定されている場合)は、HTTPヘッダーの後にデータ本体が続きます。
・2行目以降が「HTTPヘッダー」で、次のようなものが代表的です。
・ユーザーエージェント名(User-Agent)
ブラウザの種類やOSの情報。アクセスしているのがブラウザではなく検索エンジンのクローラの場合、「Googlebot」などの名前が入ります。
・リファラ(Referer)
どのページから発生したリクエストなのかを示します。よく知られているのは、ページAにあるリンクをクリックしてページBに行った場合に、ページBへのHTTPリクエストにリファラーとしてページAが入ることです。ほかにも、ページCを表示する際にページ内で使われている画像をリクエストする際に、画像のHTTPリクエストにリファラーとしてページCが入っています。
・更新されていたら(If-Modified-Since)/同じでなければ(If-None-Match)
ブラウザは、一度表示したデータを「ローカルキャッシュ」として保存しておき、同じデータは何度も通信して取得しなくてもいいようにしています。そのときに、ローカルキャッシュのデータが変更されていないかチェックするために、ファイルの変更日付や管理情報をリクエストに含めておきます。すると、「更新されていなければその旨教えて」という意味になります。
次のページHTTPレスポンス
続きは会員限定です。無料の読者会員に登録すると続きをお読みいただけます。
- 会員登録 (無料)
- ログインはこちら
関連記事
2008.09.26
2010.04.20
安田 英久
株式会社インプレスビジネスメディア Web担当者Forum編集長
企業のウェブサイト活用やウェブマーケティングに関するメディア「Web担当者Forum」(http://web-tan.forum.impressrd.jp/)を運営しています。