HTTPリクエスト
Webサーバーに送信する文字列。
1行目(開始行) GET / HTTP/1.1 -> GETメソッド でパス / のコンテンツを要求。プロトコルは HTTP/1.1を使用。
2行目 Host: example.com -> クライアントは example.com に接続しにいってるつもり
空行(正確には \r\n\r\n)
以降がHTTPリクエストボディ(ペイロード)として扱われる
RFC 2616 で決められている
ブラウザもこのルールに従って解釈している
ブラウザの代わりにtelnetで接続してみよう
code:console (http)
$ telnet example.com 80
GET / HTTP/1.1
Host: example.com
GETメソッドの場合、ペイロードはないため、空行を送信した時点で HTTPレスポンスが返ってくる。
POSTメソッドの場合は一般的にペイロードを持つ
参考
HTTP メッセージ - HTTP | MDN
HTTP/1.1 のリクエスト、レスポンスのメッセージ構造
https://mdn.mozillademos.org/files/13827/HTTPMsgStructure2.png