例
下にもっとも単純な、クライアントとサーバ(www.google.co.jp:80)とのHTTPプロトコルのやり取りの例を挙げる。クライアントのリクエスト:
GET / HTTP/1.0
サーバのレスポンス:
HTTP/1.0 200 OK
Cache-Control: private
Content-Type: text/html
Set-Cookie: PREF=ID=72c1ca72230dea65:LD=ja:TM=1113132863:LM=1113132863:S=nNO7MIp
W2o7Cqeu_; expires=Sun, 17-Jan-2038 19:14:07 GMT; path=/; domain=.google.co.jp
Server: GWS/2.1
Date: Sun, 10 Apr 2005 11:34:23 GMT
Connection: Close<html><head><meta http-equiv="content-type" content="text/html; charset=Shift_JI
S"><title>Google</title><style><!--
・・・以下省略
上のリクエストの
GETにあたる部分をメソッドといい、
HTTP/1.0では、
GET, HEAD, PUT, POST, DELETE, LINK, UNLINK、
HTTP/1.1ではさらに、
OPTIONS, TRACEがある。
GETメソッドのレスポンスにはヘッダ情報のあとに改行が挟まれ、コンテンツ本体が送られる。
HEADメソッドのレスポンスにはコンテンツサイズや更新日時などの情報を含むヘッダのみが送られる。また、リクエストの2行目以降はヘッダーを送る。
ヘッダの各要素は
フィールド名: 内容
のペアで構成される。
ブラウザの情報を表す
User-Agent、使用候補言語を表す
Accept-Language、他ページへのリンクを辿った場合にそのリンク元ページのUniform Resource Locator|URLを表す
Refererなどが代表的なフィールドである。なお、リクエスト時の
HostヘッダーはHTTP/1.1では必須であるが、HTTP/1.0では無くても良い。
但し、サーバがバーチャルホストを利用している場合は、
Hostヘッダが無いとリソース取得に失敗するので、たとえHTTP/1.0を使用していても
Hostヘッダを付加しなければならない。