HTTP 如何实现长连接?在什么时候会超时?

HTTP 实现长连接

1、HTTP 分为长连接和短连接,其实本质上说的是 TCP 的长短连接。TCP 连接是一个双向的通道,它是可以保持一段时间不关闭的,因此 TCP 连接才有真正的长连接和短连接这一个说法。
2、长连接是指的是 TCP 连接,而不是 HTTP 连接。
3、TCP 长连接可以复用一个 TCP 连接来发起多次 HTTP 请求,这样可以减少资源消耗,比如一次请求 HTML,短连接可能还需要请求后续的 JS/CSS/图片等。
4、要实现 HTTP 长连接,在响应头设置 Connection 为 keep-alive,HTTP1.1 默认是长连接,而 HTTP 1.0 协也支持长连接,但是默认是关闭的。

在什么时候会超时

1、HTTP 一般会有 httpd 守护进程,里面可以设置 keep-alive timeout,当 tcp 链接闲置超过这个时间就会关闭,也可以在 HTTP 的 header 里面设置超时时间。
2、TCP 的 keep-alive 包含三个参数,支持在系统内核的 net.ipv4 里面设置:当 TCP 连接之后,闲置了 tcp_keepalive_time,则会发生侦测包,如果没有收到对方的 ACK,那么会每隔 tcp_keepalive_intvl 再发次,直到发送tcp_keepalive_probes就会丢弃该连接。

# TCP发送keepalive探测消息之间的间隔
tcp_keepalive_intvl = 15
# TCP在认为连接已经失效之前应该发送的keepalive探测消息的数量
tcp_keepalive_probes = 5
# TCP连接在空闲多长时间后开始发送keepalive探测消息
tcp_keepalive_time = 1800 
  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值