HTTPキープアライブはどのように実装されていますか? TCP Keep Aliveを内部的に使用していますか?そうでない場合、クライアントが死んでいるかどうか、サーバーがどのように検出しますか?HTTPキープアライブとTCPキープアライブ
答えて
HTTPキープアライブは、HTTPプロトコルの機能です。キープアライブ機能を実装しているWebサーバーは、最後のHTTP応答を送信してから(対応するHTTP要求があった場合)、定期的に(着信HTTP要求に対して)接続/ソケットをチェックする必要があります。設定されたキープアライブ時間(秒)の時間までにHTTP要求が受信されない場合、Webサーバーは接続を閉じます。 Webサーバーによって「終了」された後、それ以上のHTTP要求は実行できません。一方、TCPキープアライブは、TCPレイヤのOSによって管理されます。 HTTPキープアライブとTCPキープアライブはまったく関係のないものです。
私はこれが古い質問ですけど、まだ:
HTTPキープアライブは、HTTPクライアント(通常はブラウザ)とサーバ(Webサーバ)を介して複数のリクエスト/レスポンスのペアを送信することを可能にする機能です同じTCP接続。これにより、第2、第3、... HTTPリクエストのレイテンシが減少し、ネットワークトラフィックが減少します。
TCPキープアライブは完全に異なる獣です。小さなパケットを送信することによってTCP接続を開いたままにします。さらに、パケットが送信されると、これはチェックとして機能し、接続が落ちるとすぐに送信者に通知されます(そうでなければそうでないことに注意してください).TCP接続を介して通信するまでは、大丈夫かどうかわかりません)。キープアライブHTTPについてのご質問にお答えするために
:
How is HTTP Keep Alive implemented?
簡単に言えば、HTTPサーバは各応答の後にTCP接続を閉じるが、もし他のいくつかのは、HTTPいくつかの時間を待っていませんリクエストもそれになります。いくつかのタイムアウトの後、それはとにかくそれを閉じます。
Does it internally use TCP Keep Alive?
いいえ、少なくとも私はそれには何のポイントもありません。
If not, how does the server detect if the client is dead or alive?
これは必須ではありません。クライアントがリクエストを送信すると、レスポンスが返されます。クライアントがTCP接続を介して何も送信しない場合(おそらく接続が無効であるため)、タイムアウトにより接続が切断されます。クライアントはもちろんこれに気付き、必要に応じて別のTCP接続を介して要求を送信します。
http keep-aliveは、マルチhttpリクエストを転送するためにtcpを長くするだけです。キープアライブタイムアウト後、tcp接続は閉じられます。 tcp keep-aliveは、tcp接続を維持する単なるメカニズムです。またはtcp接続が閉じていないことを確認してください。
- 1. AsioとHTTPキープアライブ
- 2. Apache HttpClient TCPキープアライブ(ソケットキープアライブ)
- 3. TCPキープアライブPDO接続パラメータ
- 4. キープアライブ可能なHTTPサーバー
- 5. HTTPキープアライブ別のホストに
- 6. Kubernetesのノードプロキシtcpキープアライブ時間の変更
- 7. TCPキープアライブは双方向ですか?
- 8. キープアライブDropwizard
- 9. Unix:TCPキープアライブ
- 10. uWSGIキープアライブ
- 11. PoolingHttpClientConnectionManagerとキープアライブ設定
- 12. nginxキープアライブとDNSリゾルバ
- 13. httpキープアライブを使用したWCF wsHttpBinding
- 14. py.testタイムアウト/キープアライブ/ハートビート?
- 15. キープアライブsqlトランザクション
- 16. TTLとキープアライブの違い
- 17. Nodejs Unixドメインソケットでキープアライブ
- 18. 接続キープアライブ問題
- 19. vue.jsページリフレッシュ後にキープアライブ
- 20. Hiredis非同期コンテキストのTCPキープアライブ間隔を設定する
- 21. ウェブサイトのページ読み込み時間とキープアライブhttp接続
- 22. angular2 HTTPサービスとキープアライブ接続を使用する方法
- 23. gedit - FTP編集をキープアライブ
- 24. python-requestsモジュール内でキープアライブ
- 25. MQTTの無制限キープアライブ
- 26. 接続:nginxウェブサーバでキープアライブ
- 27. ノードと非キープアライブ接続の方法
- 28. TCPキープアライブをイベントとして使用する方法はありますか?
- 29. HTTPプロキシでCONNECT要求でキープアライブを使用できますか?
- 30. Golang HTTPサーバを無効にするには、キープアライブ