1月22日(金)1コマ目
今日、やったこと パケット解析(HTTP) 今日のホワイトボード 先週はイーサネットヘッダ、IPヘッダ、TCPヘッダを解析しました。 今日はその続きでHTTPを解析します。 HTTP部の基本 今までのイーサネットヘッダ、IPヘッダ等はビット単位でフォーマットが決まってましたが、HTTPは文字列データと区切り(CR+LF)の繰り返しで構成されています。 文字列データは1文字ずつASCIIコードに変換されています 区切りはCR(ASCIIコードの0x0d)とLF(ASCIIコードの0x0a)の2バイトです 図 HTTP部の構造 HTTP部その1 1つ目の区切りまで1バイトづつ、ASCIIコード表に従って、文字に変換すると下図のようになりました。 図 HTTP部その1(リクエストライン) HTTPの1つ目のデータはリクエストラインまたはステータスラインのいずれかです。 クライアント=>サーバー リクエストライン サーバー=>クライアント ステータスライン まず、このパケットのTCPヘッダの宛先ポート番号はHTTPのウェルノウンポートである80です。サーバーはこの80ポートでクライアントからのリクエストを待ちます。よって、混んパケットはクライアントからサーバーへ送信したパケットです。 よって、1つ目のデータはリクエストラインです。 このリクエストラインではクライアントからサーバーへ送信する メソッド が書き込まれています。 HTTP部その2 同じように1バイトずつASCIIコード表に従って文字に変換すると下図のようになりました。 図 HTTP部その2(リクエストヘッダ) 「ヘッダフォーマット集」の17ページから、リクエストラインの次はリクエストヘッダです。 フィールド名はHOST、フィールド値は172.16.8.10です。 HTTP部その3 「ヘッダフォーマット集」の17ページから、リクエストヘッダの次は一般ヘッダです。 フィールド名はConnection、フィールド値はkeep-aliveです。 図 HTTP部その3(一般ヘッダ) まとめると このパケットのHTTP部をまとめると下図のようになります。 図 HTTP部をまとめると HT...