长连接的定义及其优缺点,以及在不同的浏览器中的支持情况
来源:互联网 发布:数组名可以做形参吗 编辑:程序博客网 时间:2024/04/28 10:31
http://en.wikipedia.org/wiki/HTTP_persistent_connection
以下是我的部分翻译:
HTTP长连接(持久化连接)
以下是一张连接与接连接的区别
HTTP长连接,英文的说话有这么几种:HTTP persistent connection、HTTP keep-alive或者 HTTP connection reuse,是用来在一个TCP连接的基础之上,发送多个HTTP请求以及接收多个HTTP响应,这是为了避免每一次请求都去打开一个新的连接。
在HTTP 1.0标准的时候,关于如何保持是没有官方标准支持长连接,这个时候客户端和服务端如果需要建立长连接,那客户端的发起请求的时候,就需要在请求头中带一个表示长连接请求头:
Connection: Keep-Alive
如果服务端同意长连接请求,那么服务端在返回头中增加响应头:
Connection: Keep-Alive
这样就建立了一个长连接,当客户端与服务端的某一方或者同时关闭连接的时候,或者网络原因,这个连接才会断掉。
在HTTP 1.1标准中,所有的请求都认为是长连接,这个时候HTTP长连接的建立不再需要标识单独的长连接信息。然而,在apache2.0中默认的连接超时时间是15秒,而2.2中默认是5秒,减少超时时间是为了服务器能够响更多的请求。
长连接的优点:
1、减少CPU及内存的使用,因为不需要经常的建立及关闭连接,当然高峰并发时CPU及内存也是比较多的;
2、2、允许HTTP pipelining(HTTP 1.1中支持)的请求及响应模式:
为了便于理解HTTP pipelining,参见下图:
3、减少网络的堵塞,因为减少了TCP请求;
4、减少后续请求的响应时间,因为此时不需要建立TCP,也不需要TCP握手等过程;
5、当发生错误时,可以在不关闭连接的情况下进行提示;
根据RFC 2616 (page 46)的标准定义,单个客户端不允许开启2个以上的长连接,这个标准的目的是减少HTTP响应的时候,减少网络堵塞。
长连接的缺点:可能会损害服务器的整体性能,如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开始支持长连接,长连接数可以自定义;
- 长连接的定义及其优缺点,以及在不同的浏览器中的支持情况
- 长连接的定义及其优缺点,以及在不同的浏览器中的支持情况
- 长连接的定义及其优缺点,以及在不同的浏览器中的支持情况
- 为 SELECT 对象增加或删除选项的方法在各浏览器中的支持情况不同
- 长在不同部位逗逗的情况
- 不同浏览器对长链接的支持线不同
- 为 SELECT.options 对象增加或删除选项的方法在各浏览器中的支持情况不同
- 视图的定义以及优缺点
- js的组成部分以及各浏览器的支持情况
- 关于p3p 简洁策略,以及浏览器的支持情况
- 阅读下面类的定义,请说出在测试函数中的不同情况的调用产生的结果1
- html的frameset标签在不同浏览器中的不同表现!
- 程序设计中的三种不同出错的处理方式及其优缺点
- 策略模式的优缺点以及在Android中的应用
- 百度搜索关键词排名在不同浏览器下排名不同的情况
- css中图片路径,以及在不同浏览器的兼容问题
- 把全局变量定义在.h文件中的引起连接错误的原因以及解决办法
- 各浏览器对HTML5的支持情况
- TP-LINK花生壳搭建个人服务器无法访问
- C格式读取文件内容
- IO系统性能之三:在Linux中监视IO性能
- android+WM9714(AC97)调试
- HDFS安装和部署
- 长连接的定义及其优缺点,以及在不同的浏览器中的支持情况
- rpm安装与卸载
- 转换json格式的日期为Javascript对象
- 为程序员量身定制的12个目标
- U盘安装rhel5.5
- 安卓开发一个月之心得(应用市场篇)
- Oracle数据库启动的问题
- BW学习笔记十八(InfoCube Aggregate聚集介绍 )
- 深入理解基于 HTTP 长连接的“服务器推”技术(Comet)附例子