老李谈HTTP1.1的长链接

老李谈HTTP1.1的长链接

 

poptest是国内惟一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工做为目标。若是对课程感兴趣,请你们咨询qq:908821478,咨询电话010-84505200。html

HTTP是一个构建在传输层的TCP协议之上的应用层的协议,在这个层的协议,是一种网络交互须要遵照的一种协议规范。web

 

HTTP1.0的短链接

HTTP 1.0规定浏览器与服务器只保持短暂的链接,浏览器的每次请求都须要与服务器创建一个TCP链接,服务器完成请求处理后当即断开TCP链接,服务器不跟踪每一个客户也不记录过去的请求。这个过程大概能够描述为:浏览器

一、创建链接:首先DNS解析过程。如把域名变成一个ip,若是url不包含端口号,则会使用该协议的默认端口号,HTTP协议的默认端口号为80。而后三次握手创建一个TCP链接;服务器

二、请求:链接成功后,开始向web服务器发送请求,这个请求通常是GET或POST请求。网络

三、应答:web服务器收到这个请求,进行处理。web服务器会把文件内容传送给响应的web浏览器。包括:HTTP头信息,体信息。并发

四、关闭链接:当应答结束后,web浏览器与web服务器必须四次握手断开链接,以保证其它web浏览器可以与web服务器创建链接。工具

 

HTTP1.1的长链接

可是HTTP1.1开始默认创建的是长链接,即一旦浏览器发起HTTP请求,创建的链接不会请求应答以后马上断掉。post

 

一、 一个复杂的具有不少HTTP资源的网页会创建多少TCP链接,如何使用这些链接?性能

二、 已经创建的TCP链接是否会自动断开,时间是多久?测试

 

对于第一个问题。如今浏览器都有最大并发链接数限制,应该说若是须要,就会尽可能在容许范围内创建更多的TCP持久链接来处理HTTP请求,一样滴,一个TCP持久链接能够不断传输多个HTTP请求,可是若是上一个请求的响应还未收到,则不能处理下一个请求(Pipeling管道技术能够解决这个问题从而进一步提高性能),因此说不少浏览器其实均可以修改容许最大并发链接数以提高浏览网页的速度。

 

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

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

相关文章
相关标签/搜索