HTTP 长连接了解吗?
在 HTTP 中,长连接是指客户端和服务器之间在一次 HTTP 通信完成后,不会立即断开,而是保留连接以供后续请求复用。
这种机制可以减少了频繁建立和关闭连接的开销
如何设置长连接?
可以通过 Connection: keep-alive 实现。在 HTTP/1.1 中,长连接是默认开启的。
在什么时候会超时呢?
- HTTP 一般会有 httpd 守护进程,里面可以设置 keep-alive timeout,当 tcp 连接闲置超过这个时间就会关闭,也可以在 HTTP 的 header 里面设置超时时间
- TCP 的 keep-alive 包含三个参数,支持在系统内核的 net.ipv4 里面设置;当 TCP 连接之后,闲置了 tcp_keepalive_time,则会发生侦测包,如果没有收到对方的 ACK,那么会每隔 tcp_keepalive_intvl 再发一次,直到发送了 tcp_keepalive_probes,就会丢弃该连接。
1. tcp_keepalive_intvl = 15
2. tcp_keepalive_probes = 5
3. tcp_keepalive_time = 1800
THE END
暂无评论内容