HTTP长连接(持久化连接): 在一个TCP连接的基础之上,发送多个HTTP请求以及接收多个HTTP响应,这是为了避免每一次请求都去打开一个新的连接。
![](http://hi.csdn.net/attachment/201112/24/0_1324729533QJ15.gif)
在HTTP 1.1标准中,所有的请求都认为是长连接,这个时候HTTP长连接的建立不再需要标识单独的长连接信息。然而,在apache2.0中默认的连接超时时间是15秒,而2.2中默认是5秒,减少超时时间是为了服务器能够响更多的请求。
长连接的优点:
1、减少CPU及内存的使用,因为不需要经常的建立及关闭连接,当然高峰并发时CPU及内存也是比较多的;
2、允许HTTP pipelining(HTTP 1.1中支持)的请求及响应模式:
为了便于理解HTTP pipelining,参见下图:
![](http://hi.csdn.net/attachment/201112/24/0_132472959384FO.gif)
3、减少网络的堵塞,因为减少了TCP请求; 根据RFC 2616 (page 46)的标准定义,单个客户端不允许开启2个以上的长连接,这个标准的目的是减少HTTP响应的时候,减少网络堵塞
4、减少后续请求的响应时间,因为此时不需要建立TCP,也不需要TCP握手等过程;
5、当发生错误时,可以在不关闭连接的情况下进行提示;
长连接的缺点:可能会损害服务器的整体性能,如apache的长连接时间的长短,直接影响到服务器的并发数。
长连接在浏览器中的使用情况:
Netscape从4.05开始支持,Netscape不是通过timeout来关闭长连接,它是将空闲连接放置到一个队列中,当有需要向其它服务端建立长连接时,这个时候,它根据LRU(Least Recently Used)算法进行处理,即将最使少使用的空闲连接KILL掉;
IE从4.0.1开始支持,IE6、7只支持两个长连接,IE8支持6个,IE 60秒为默认的超时时间,这个值可以在注册表中修改;
FF类似IE通过timeout管理长连接,不过,默的是115秒,这个是可能通过配置进行更改的;
Opera从4.0开始支持长连接,长连接数可以自定义;
以下是一张连接与接连接的区别
![](http://hi.csdn.net/attachment/201112/24/0_1324729533QJ15.gif)
在HTTP 1.1标准中,所有的请求都认为是长连接,这个时候HTTP长连接的建立不再需要标识单独的长连接信息。然而,在apache2.0中默认的连接超时时间是15秒,而2.2中默认是5秒,减少超时时间是为了服务器能够响更多的请求。
长连接的优点:
1、减少CPU及内存的使用,因为不需要经常的建立及关闭连接,当然高峰并发时CPU及内存也是比较多的;
2、允许HTTP pipelining(HTTP 1.1中支持)的请求及响应模式:
为了便于理解HTTP pipelining,参见下图:
![](http://hi.csdn.net/attachment/201112/24/0_132472959384FO.gif)
3、减少网络的堵塞,因为减少了TCP请求; 根据RFC 2616 (page 46)的标准定义,单个客户端不允许开启2个以上的长连接,这个标准的目的是减少HTTP响应的时候,减少网络堵塞
4、减少后续请求的响应时间,因为此时不需要建立TCP,也不需要TCP握手等过程;
5、当发生错误时,可以在不关闭连接的情况下进行提示;
长连接的缺点:可能会损害服务器的整体性能,如apache的长连接时间的长短,直接影响到服务器的并发数。
长连接在浏览器中的使用情况:
Netscape从4.05开始支持,Netscape不是通过timeout来关闭长连接,它是将空闲连接放置到一个队列中,当有需要向其它服务端建立长连接时,这个时候,它根据LRU(Least Recently Used)算法进行处理,即将最使少使用的空闲连接KILL掉;
IE从4.0.1开始支持,IE6、7只支持两个长连接,IE8支持6个,IE 60秒为默认的超时时间,这个值可以在注册表中修改;
FF类似IE通过timeout管理长连接,不过,默的是115秒,这个是可能通过配置进行更改的;
Opera从4.0开始支持长连接,长连接数可以自定义;