深圳规模较大的网站建设公司,引流获客工具,WordPress评论后不会跳转,wordpress完全开源么老李谈HTTP1.1的长连接 poptest是国内唯一一家培养测试开发工程师的培训机构#xff0c;以学员能胜任自动化测试#xff0c;性能测试#xff0c;测试工具开发等工作为目标。如果对课程感兴趣#xff0c;请大家咨询qq#xff1a;908821478#xff0c;咨询电话010-84505200…老李谈HTTP1.1的长连接 poptest是国内唯一一家培养测试开发工程师的培训机构以学员能胜任自动化测试性能测试测试工具开发等工作为目标。如果对课程感兴趣请大家咨询qq908821478咨询电话010-84505200。 HTTP是一个构建在传输层的TCP协议之上的应用层的协议在这个层的协议是一种网络交互需要遵守的一种协议规范。 HTTP1.0的短连接 HTTP 1.0规定浏览器与服务器只保持短暂的连接浏览器的每次请求都需要与服务器建立一个TCP连接服务器完成请求处理后立即断开TCP连接服务器不跟踪每个客户也不记录过去的请求。这个过程大概可以描述为 1、建立连接首先DNS解析过程。如把域名变成一个ip如果url不包含端口号则会使用该协议的默认端口号HTTP协议的默认端口号为80。然后三次握手建立一个TCP连接 2、请求连接成功后开始向web服务器发送请求这个请求一般是GET或POST请求。 3、应答web服务器收到这个请求进行处理。web服务器会把文件内容传送给响应的web浏览器。包括HTTP头信息体信息。 4、关闭连接当应答结束后web浏览器与web服务器必须四次握手断开连接以保证其它web浏览器能够与web服务器建立连接。 HTTP1.1的长连接 但是HTTP1.1开始默认建立的是长连接即一旦浏览器发起HTTP请求建立的连接不会请求应答之后立刻断掉。 1、 一个复杂的具备很多HTTP资源的网页会建立多少TCP连接如何使用这些连接 2、 已经建立的TCP连接是否会自动断开时间是多久 对于第一个问题。现在浏览器都有最大并发连接数限制应该说如果需要就会尽量在允许范围内建立更多的TCP持久连接来处理HTTP请求同样滴一个TCP持久连接可以不断传输多个HTTP请求但是如果上一个请求的响应还未收到则不能处理下一个请求(Pipeling管道技术可以解决这个问题从而进一步提升性能)所以说很多浏览器其实都可以修改允许最大并发连接数以提升浏览网页的速度。 对于第二个问题。问题在于服务器端对于长连接的实现特别是在对长连接的维护上。FTP协议及SMTP协议中有NOOP消息这个就可以认为是心跳报文但HTTP协议没有类似的消息这样服务器端只能使用超时断开的策略来维护连接。设想超时时间非常短那么有效空闲时间就非常短换句话讲一旦链路上没有数据发送服务器端很快就关闭连接。 也就是说其实HTTP的长连接很容易在空闲后自动断开一般来说这个时间是300s左右。 转载于:https://www.cnblogs.com/poptest/p/5210636.html