TCP セッション - Wireshark キャプチャの http リクエスト

TCP セッション - Wireshark キャプチャの http リクエスト

以下のように、[HTTP リクエスト 1/2] と [HTTP リクエスト 2/2] が 2 つの別々のペイロードに表示されていますが、これらは単一の TCP セッション内の別々の GET リクエストでしょうか、それとも同じ GET リクエストでしょうか ?

ここに画像の説明を入力してください ここに画像の説明を入力してください

====

フルキャプチャ画像1を追加しました ここに画像の説明を入力してください

写真2 ここに画像の説明を入力してください 写真3 ここに画像の説明を入力してください

答え1

次の理由により、これらは同じ接続内の 2 つの要求である可能性があります。

  • 接続のエンドポイント、つまり両方のリクエストの送信元ポート、送信元 IP、宛先ポート、宛先 IP はまったく同じです。通常、送信元ポートは一時的なものであり、別の接続にすぐに再利用されることはありません。
  • 最初のリクエストには (相対的な) 開始シーケンス 1 と長さ 9 があり、2 番目のリクエストには開始シーケンス 10 がすぐに続くようです。
  • 表示されるタイミング情報は、これらのリクエストが近いことを示しています。

しかし、接続のより多くの部分を確認せずに、つまり、リクエスト間で同じエンドポイントに対して接続の切断 (FIN) とセットアップ (SYN) があったかどうかを確認せずに、これについて明確にすることは不可能です。

これらが実際には同じ接続内の 2 つのリクエストである場合、これらは HTTP クライアントとサーバーの動作が非常に奇妙であるか、または (適切な) HTTP ではないことに注意してください。Wireshark によって解析された HTTP と見なされる場合、クライアントは HTTP 0.9 リクエスト (リクエスト内の 1 行、つまり完全な HTTP/1.x ヘッダーがない) を実行しますが、これはそもそも珍しいことです (何年も前から廃止されています)。さらに、HTTP キープアライブは HTTP 1.0 以降ではリクエスト内の明示的なヘッダーでのみ定義され、HTTP 1.1 以降では暗黙的にのみ定義されているにもかかわらず、サーバーは HTTP 0.9 リクエストにもかかわらず HTTP キープアライブ (つまり単一の TCP 接続内で複数の HTTP リクエスト) を実行しますConnection: keep-alive

関連情報