文档章节

长连接的定义及其优缺点

Zero零_度
 Zero零_度
发布于 2017/05/24 08:44
字数 603
阅读 129
收藏 0

HTTP长连接(持久化连接):  在一个TCP连接的基础之上,发送多个HTTP请求以及接收多个HTTP响应,这是为了避免每一次请求都去打开一个新的连接。

        以下是一张连接与接连接的区别

         
在HTTP 1.1标准中,所有的请求都认为是长连接,这个时候HTTP长连接的建立不再需要标识单独的长连接信息。然而,在apache2.0中默认的连接超时时间是15秒,而2.2中默认是5秒,减少超时时间是为了服务器能够响更多的请求。
长连接的优点
1、减少CPU及内存的使用,因为不需要经常的建立及关闭连接,当然高峰并发时CPU及内存也是比较多的;
2、允许HTTP pipelining(HTTP 1.1中支持)的请求及响应模式:
为了便于理解HTTP pipelining,参见下图:


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://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=30027025&id=4650858

Zero零_度
粉丝 69
博文 1268
码字总数 264512
作品 0
程序员
私信 提问
webSocket(二) 短轮询、长轮询、Websocket、sse

简介 Web Sockets定义了一种在通过一个单一的 socket 在网络上进行全双工通讯的通道。仅仅是传统的 HTTP 通讯的一个增量的提高,尤其对于实时、事件驱动的应用来说是一个飞跃。 通过Polling...

asyncnode
09/29
0
0
数据库系统实现-复习提纲

复习提纲2015 数据库管理系统主要包括存储管理器、查询处理器和事务管理器等几个子系统。 存储管理器、查询处理器和事务管理器(填空题) DBMS从接受查询请求到返回结果的整个运行过程。 语法...

WHXSCNU
2015/12/08
7
0
HTTP 长连接技术 Comet

人们常常提到”Comet”, 或者”Web 服务器推”, “HTTP 长连接”, 事实上, 他们指的是同一件东西, 可以统称为 Comet 技术. 但是, Comet 技术又不是单独的一种东西, 而解决某一个问题的许多技...

ideawu
2014/07/29
4.3K
7
设计模式系列之「适配器模式」

小C:小Y,家里的插孔没有两孔的怎么办? 小Y:so easy,淘宝电源转换插头包邮只要九块九毛九,真的只要九块九毛九。 ...... 小C:iPhone x变成Lightning接头,传统的耳机会不会用不了? 小Y:又没...

YoungManSter
2017/11/30
0
0
Ada语言(gnat)hello world

hello_world.adb 编译运行: $ gnatmake helloworld gcc-6 -c helloworld.adb gnatbind-6 -x helloworld.ali gnatlink-6 helloworld.ali $ ./hello_world Hello World! 字符串类型及其简单处......

wangxuwei
2017/04/19
49
0

没有更多内容

加载失败,请刷新页面

加载更多

PostgreSQL 11.3 locking

rudi
44分钟前
5
0
Mybatis Plus sql注入器

一、继承AbstractMethod /** * @author beth * @data 2019-10-23 20:39 */public class DeleteAllMethod extends AbstractMethod { @Override public MappedStatement injectMap......

一个yuanbeth
今天
8
1
一次写shell脚本的经历记录——特殊字符惹的祸

本文首发于微信公众号“我的小碗汤”,扫码文末二维码即可关注,欢迎一起交流! redis在容器化的过程中,涉及到纵向扩pod实例cpu、内存以及redis实例的maxmemory值,statefulset管理的pod需要...

码农实战
今天
4
0
为什么阿里巴巴Java开发手册中不建议在循环体中使用+进行字符串拼接?

之前在阅读《阿里巴巴Java开发手册》时,发现有一条是关于循环体中字符串拼接的建议,具体内容如下: 那么我们首先来用例子来看看在循环体中用 + 或者用 StringBuilder 进行字符串拼接的效率...

武培轩
今天
8
0
队列-链式(c/c++实现)

队列是在线性表功能稍作修改形成的,在生活中排队是不能插队的吧,先排队先得到对待,慢来得排在最后面,这样来就形成了”先进先出“的队列。作用就是通过伟大的程序员来实现算法解决现实生活...

白客C
今天
78
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部