日経ネットワーク12月号、
「スッキリわかる!ネットワーク技術解説」より。
○HTTPメッセージの構成
・開始行
・ヘッダー
・ボディ
開始行<改行> (最初の改行までが開始行) ヘッダー1<改行> ヘッダー2<改行> … ヘッダーlast<改行> <改行> (改行コードが2つ連続で入ると、それ以降はボディ) ボディ
●開始行
・リクエストの開始行
[メソッド] [リクエストURI] [バージョン]<改行> 例) GET /index.html HTTP/1.1\r\n
メソッド:Webサーバーに要求する操作
GET, POSTなど
HTTP リクエストメソッド(MDN web docs)
リクエストURI:操作の対象となるデータの場所
サーバー上でのファイルパスみたいなものかな?
一応、参考(URIとは)
https://qiita.com/Zuishin/items/3bd56117ab08ec2ec818
バージョン:HTTPのバージョン
・レスポンスの開始行
[バージョン] [ステータスコード] [フレーズ]<改行> 例) HTTP/1.1 200 OK\r\n
ステータスコード、フレーズ:要求された操作の処理結果
200 OK, 404 Not Foundなど
HTTP レスポンスステータス(MDN web docs)
●ヘッダー
[ヘッダー名]: [ヘッダー内容]<改行> 例) Host: infra.salmon0852.com\r\n
ヘッダー:
HTTP ヘッダー(MDN web docs)
●ボディ
メッセージの内容が入っている
例)
POSTリクエストなら、Formの内容。
GETに対するレスポンスなら、htmlファイルの内容。
など。
○HTTPメッセージ例
当ブログのトップページにアクセスしたときの、
HTTPメッセージの内容
WireSharkでキャプチャし、
「パケットバイト列をエクスポート」で、txtファイルに保存。(一部修正・削除)
※HTTPメッセージ部分はテキスト形式なので、
txtファイルにエクスポートしても普通に読めるw
(GETリクエスト) GET / HTTP/1.1 Host: infra.salmon0852.com Connection: keep-alive Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (Windows NT 6.1) .... Accept: text/html,application/xhtml+xml,.... Referer: [リンク元] Accept-Encoding: gzip, deflate,.... Accept-Language: ja,en-US;q=0.9,en;q=0.8 Cookie: ****** (レスポンス) HTTP/1.1 200 OK Date: Sun, 10 Dec 2017 06:55:43 GMT Content-Type: text/html; charset=UTF-8 Content-Length: 22217 Connection: keep-alive X-Powered-By: PHP/7.1.5 Expires: Wed, 11 Jan 1984 05:00:00 GMT Cache-Control: no-cache, must-revalidate, max-age=0 Vary: Accept-Encoding Content-Encoding: gzip Server: Apache <!DOCTYPE html> ....