2017-05-01 9 views
0

ドメインにあるリソースをリクエストしたいとします。 example.com/image.jpg。同じリソースへのHTTP応答が順番に返されますか?

この特定のリソースに対して2つのリクエストを行った場合、私が最初に送信したレスポンスに最初に返信することができますか?これはクライアント/サーバーの実装に依存しますか?

リクエスト/レスポンスのペアをデバッグしたい場合は、どのレスポンスがどのリクエストに属しているかを正確に知る必要があるからです(タイミング目的など)。だから、このマッピングを達成するための確実な方法はありますか?

答えて

0

新しいリクエストを送信する際に、以前のレスポンスをまだ持たずに、つまりHTTP pipeliningを使用せずに、永続的な接続(つまりHTTPキープアライブ)を使用してHTTP/1.xについて話しているとします。この場合、応答の順序は要求の順序と一致します。

HTTP/2について話している場合、同じTCP接続内で複数の要求が同時に応答を受け取る可能性があるため、状況が異なります。これは、後の要求が以前の要求よりも前に応答を受け取った可能性があることを意味します。また、同じリソースへのリクエストがサーバーによって処理される順序は、サーバーの実装に完全に依存します。

要求が独立したTCP接続内で行われる場合も同じです。要求は異なるスレッドまたはプロセスで処理される可能性があり、したがって、順序はオペレーティングシステムでのスケジューリングにも依存するため、HTTP/2よりも予測がさらに予測できない可能性があります。

+0

ご協力ありがとうございました。だから私はこれに対する答えはノーだと思います。私は直接制御しないサーバーに接続が行われるので、正しい応答を要求にマッピングする確かな方法はありません。 –

+0

@ØyvindHauge:もちろん、リクエストに対する各レスポンスをマッピングすることもできます。レスポンスの番号と一致する永続的なHTTP接続内のリクエストの番号に基づいてこれを行うことができます。異なるTCP接続がある場合、応答は常に要求のTCP接続になります。また、HTTP/2では、応答と要求の間に明確な関連付けがあります。唯一のことは、複数のTCP接続またはHTTP/2を持っていても、各応答を依然として特定の要求に関連付けることができる場合、応答の順序は必ずしも要求の順序ではないということです。 –

+0

ああ、大丈夫です。私はもう少し研究をします。だから私は、これの処理はトランスポート層で起こる必要があると思いますか? @SteffenUllrich –

関連する問題