HTTP





リクエスト(Request)


HTTP プロトコルではクライアントは GET メッセージでネットワーク先のリソースを取得する。 SYNTAX GET / HTTP/1.0 option ... パスとバージョンの後に、0個以上の任意のオプション行をいれる。 空行でリクエストの終了を意味する。
--------------------------- GET リソースパス バージョン オプション1 オプション2 ... ---------------------------
一番シンプルなメッセージは以下になる
GET / HTTP/1.0\r\n\r\n
オプションは 属性名: 値 で指定する。 Host を指定する
GET / HTTP/1.0 Host: ooo.iiyudana.net
プログラムでは以下の文字列を send する。
const char *msg = "GET / HTTP/1.0\r\nHost: ooo.iiyudana.net\r\n\r\n"; send( sock, msg, strlen(msg), 0 );



リクエストオプション





Host


仮想ホストによってひとつの IP に複数のホスト名を対応づける場合に クライアント側がどの URL のページを要求しているか指定をする。
xxx.xxx.xxx.xxx <-> host1.com host2.com host3.com
クライアントが GET / HTTP/1.0 を要求しても サーバは host1.com/ host2.com/ host3.com/ のどれを返せばいいかわからない。 そこでクライアントは host1.com/ に対応づいたページが必要は場合は Host: host1.com とする。


レスポンス


POINT HTTP ではリクエストの結果が成功なのか失敗なのかは 最初の一行に書いてある
// 200 : StatusCode ( Success ) // OK : 適当な Message ( OKDayo ! )でもいい HTTP/1.0 200 OK // 404 : そんな file ありません HTTP/1.0 404 NOT FOUND
Webブラウザーなどで HP を見るときに使用するプロトコル ---------------------------------------------------------------- // 結果 HTTP/1.1 200 OK // 更新日 Last-Modified: Sun, 19 Mar 2000 07:16:23 GMT // ヘッダ Content-Length: 1484 Content-Type: text/html ( 空行 ) ---------------------------------------------------------------- // 空行をはさんでデータ本体がきます <HTML> 〜 </HTML> ----------------------------------------------------------------