15
Keep-Alive: 300
Proxy-Connection: keep-alive

リクエストが応答されるとHTTP接続が閉じられることがわかっているので、それはどういう意味keep-aliveですか?誰かがこれを詳しく説明できますか?

4

5 に答える 5

14

これは、接続を開いたままにして、画像やスタイルシートなどのリソースをさらに要求しても問題ないことを意味します。

于 2011-05-19T15:21:50.013 に答える
7

私たちが知っているように、リクエストが応答されるとHTTP接続が閉じられます

HTTP 接続とは何ですか? 実際には、HTTP が実装されているソケット接続です。HTTP1.0 でのみ、各応答後に接続が閉じられます。TCP/IP 接続をセットアップするコストを節約するために、HTTP1.1 では、クライアントがヘッダーを送信しない限り、

Connection:close

またはサーバーが同じヘッダーで戻ってきた場合、ソケットは開いたままになります。このソケットに必要な数のリクエストをフィードすると、リクエストされた順序でレスポンスが返されます。これには、応答がチャンク転送エンコーディングで送信されるか、各応答の終わりを検出/計算できるように content-length ヘッダーが含まれている必要があります。

ヘッダーは再び異なり、proxy-connectionクライアントとプロキシ サーバー間の会話のみに関連しています。

プロトコルの優れたガイドとして、このページをお勧めします。

HTTP が本当に簡単に

于 2011-05-19T15:27:34.367 に答える
1

プロトコルは確かにステートレスですが、キープアライブは、クライアントとサーバーの間で接続を開いたままにしておく必要があることを示します。

TCP 接続を開くことは比較的負荷の高い操作であり、その接続を開いたままにしておくことで、新しい接続を開くことに関連するセットアップと破棄のコストを回避できます。

于 2011-05-19T15:26:48.417 に答える
1

Keep-aliveステートフルネスとは何の関係もありません。

ネットワーキングで最もコストのかかる操作の 1 つは、接続を繰り返し開いたり閉じたりすることです。ただし、最新の HTML ページでは、技術的には正確にそれを行う必要があります。最初にページを取得し、次に各リソースを取得して、すべてが揃うまで繰り返します。それは信じられないほど遅いため、HTTP/1.1 では、エージェントがサーバーから必要なものすべてを取得するまで、エージェントは接続を維持できます。

Keep-alive基本的には、サーバーにまだハングアップしないように指示する Web ブラウザーです。

于 2011-05-19T15:30:53.937 に答える