HTTPヘッダーのConnection
とProxy-Connection
の違いは何ですか?
Proxy-Connection
フィールドはプロキシによって追加されていますか?またはクライアントとサーバー?キープアライブとクローズの値を持つこれら2つのフィールドを持つヘッダーを受信した後、プロキシ、クライアント、またはサーバーは何をしますか?
Connection
ヘッダーは、HTTP接続でキープアライブ動作を維持するためにHTTP 1.0および1.1仕様(RFC2068およびRFC2616)で定義されている標準ヘッダーです。
Proxy-Connection
は、Connection
ヘッダーをいつ使用できるかについての誤解のために、同様のことを行うためにNetscape開発者によって作成された実験的なヘッダーでした。これは正しく機能したことがなく、現在存在する多くの一般的なHTTPシステムによって無視されています。設計どおりに機能する場合、2つの間に違いはありません。
引用元 https://tools.ietf.org/html/rfc7230#appendix-A.1.2
HTTP/1.0では、各接続は要求の前にクライアントによって確立され、応答の送信後にサーバーによって閉じられます。ただし、一部の実装では、[RFC2068]のセクション19.7.1で説明されている持続的接続の明示的にネゴシエートされた(「Keep-Alive」)バージョンが実装されています。
一部のクライアントとサーバーは、「接続:キープアライブ」要求ヘッダーフィールドを使用して明示的にネゴシエートすることにより、持続的接続に対するこれらの以前のアプローチとの互換性を望んでいる場合があります。ただし、HTTP /1.0持続的接続のいくつかの実験的な実装には欠陥があります。たとえば、HTTP/1.0プロキシサーバーが接続を理解しない場合、そのヘッダーフィールドが誤って次のインバウンドサーバーに転送され、接続がハングします。
試みられた解決策の1つは、特にプロキシを対象としたProxy-Connectionヘッダーフィールドの導入でした。実際には、プロキシは複数のレイヤーに展開されることが多く、上記と同じ問題が発生するため、これも機能しませんでした。
その結果、クライアントは、リクエストでProxy-Connectionヘッダーフィールドを送信しないことをお勧めします。
クライアントは、接続の使用を検討することもお勧めします。 HTTP/1.0サーバーとの永続的な接続を有効にすることはできますが、それらを使用するクライアントは、「ハング」リクエスト(クライアントがヘッダーフィールドの送信を停止する必要があることを示します)の接続を監視する必要があります。このメカニズムは、次のクライアントでは使用しないでください。プロキシが使用されているときすべて。