私は要求を行うときにConnectionヘッダーを次の値に設定するHTTPクライアントを持っています。
Connection: close
ただし、サーバーが応答を送信するとき、ヘッダーをKeep-Aliveに設定しています。
Connection: Keep-Alive
これは私には直感的に間違っているように思えます。クライアントがどのようにサーバーからのそのような応答を処理する必要があるのだろうか?また、クライアントが接続のクローズを要求したときに、Keep Aliveでサーバが応答するのはなぜですか?
HTTP RFC:
HTTP / 1.1では、応答が完了した後に接続が閉じられることを送信者が知らせるための「close」接続オプションが定義されています。たとえば、
Connection: close
要求ヘッダーフィールドか応答ヘッダーフィールドのどちらかに、現在の要求/応答が完了した後に接続が「永続的」(セクション8.1)とみなされてはならないことを示します。
回答:
回答№1の13それはいいです。 あなたは、永続的な接続をサポートしていないということをサーバーに伝えています。いずれの当事者も接続を閉じるのに完全に有効です。これは、この接続コマンドを閉じる必要はなく、両方がサポートしていることに関するメッセージです。
回答№2の6
クライアントは言う 私 電流が流れているときに接続を閉じるリクエスト/レスポンスが終了した、つまり、永続的な接続をサポートしていないと言われます。つまり、サーバに接続を閉じるよう指示していません。サーバーは、永続的接続(キープアライブ)をサポートすると応答します。
サーバーに永続的な接続をサポートしていないと言いましたので、応答を読み取ったときに接続を閉じる必要があります。