HTTP修炼手册-HTTP 和 TCP 的 KEEP ALIVE

先把结论放这:TCP 的 keepalive 和 HTTP 请求和响应的包头里的 keepalive 不是一回事。


TCP 的 keepalive 是用来检查 TCP 连接的对方是否还“活着”,Linux 有三个参数跟 keepalive 有关。

  • tcp_keepalive_time 一个连接闲了一定时间,就发 keepalive 的消息,这个时间长度是由 tcp_keepalive_time 来指定。
  • tcp_keepalive_probes 指定发送多少个 keepalive 探测包。如果对方回了 keepalive 探测包,说明对方还在,就继续保持这个连接。
  • tcp_keepalive_intvl 指定发送 keepalive 探测报的间隔时间。跟 tcp_keepalive_probes 相乘(发送多个 keepalive 探测包,对方没有响应),得到的就是从开始 keepalive 检查到放弃这个连接的时间。

HTTP 的 keepalive 是指客户端和 HTTP 服务端建立起 TCP 连接后,在这一个 TCP 连接上进行多次 HTTP 请求和响应,而不是建立 TCP 连接,请求,应答 HTTP,然后就断开 TCP 连接。建立、断开 TCP 的次数大大减少了,TCP 的连接数也减少了。


参考:
理解TCP之Keepalive
理解HTTP之keep-alive

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容