老李谈HTTP1.1的长连接 2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了老李谈HTTP1.1的长连接 2相关的知识,希望对你有一定的参考价值。

HTTP1.1的长连接

但是HTTP1.1开始默认建立的是长连接,即一旦浏览器发起HTTP请求,建立的连接不会请求应答之后立刻断掉。

 

1、 一个复杂的具备很多HTTP资源的网页会建立多少TCP连接,如何使用这些连接?

2、 已经建立的TCP连接是否会自动断开,时间是多久?

 

对于第一个问题。现在浏览器都有最大并发连接数限制,应该说如果需要,就会尽量在允许范围内建立更多的TCP持久连接来处理HTTP请求,同样滴,一个TCP持久连接可以不断传输多个HTTP请求,但是如果上一个请求的响应还未收到,则不能处理下一个请求(Pipeling管道技术可以解决这个问题从而进一步提升性能),所以说很多浏览器其实都可以修改允许最大并发连接数以提升浏览网页的速度。

 

对于第二个问题。问题在于服务器端对于长连接的实现,特别是在对长连接的维护上。FTP协议及SMTP协议中有NOOP消息,这个就可以认为是心跳报文,但HTTP协议没有类似的消息,这样服务器端只能使用超时断开的策略来维护连接。设想超时时间非常短,那么有效空闲时间就非常短,换句话讲:一旦链路上没有数据发送,服务器端很快就关闭连接。

也就是说其实HTTP的长连接很容易在空闲后自动断开,一般来说这个时间是300s左右。

以上是关于老李谈HTTP1.1的长连接 2的主要内容,如果未能解决你的问题,请参考以下文章

HTTP1.1之后的长连接和WebSocket的长连接之间的区别

HTTP的长链接和短链接以及HTTP1.0HTTP1.1HTTP2.0

java 怎么实现http1.1中规定的pipeline的长连接

关于HTTP的长连接和短连接那些事

HTTP协议解析

POPTEST老李谈Debug和Release的区别(c#)2