老李谈HTTP1.1的长连接

老李谈HTTP1.1的长连接

poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标。如果对课程感兴趣,请大家咨询qq:908821478,咨询电话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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491177.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

OpenCV学习笔记(七):形态学morpholgy(1):腐蚀/膨胀:enrode(),dilate()

OpenCV学习笔记(七):形态学(morpholgy):腐蚀/膨胀:enrode(),dilate() 数学形态学(Mathematical morphology) 是一门建立在格论和拓扑学基础之上的图像分析学科,是数学形态学图像处理…

【中台】“中台”概念究竟是什么?制造业企业需要拥抱吗?

来源:中国电子报“忽如一夜春风来,千树万树梨花开。” 这首诗形容当前“中台”概念的风靡非常恰当。IT圈里不乏新的概念、新的“网红”,如今,“中台”一词占据了C位,成为软硬件企业尤其是互联网企业在各大演讲中经常挂…

PPT立方体三面同色

我们知道PPT插入的立方体有一面的颜色比其它两面深一点,例如我插入一个立方体,并将其填充为白色: 可以看到有一面并不是白色,而是灰色。但如果我需要的是三面都为白色的立方体呢? 这时可以插入一个平行四边形&#xf…

OpenCV学习笔记(九): 漫水填充:floodFill()

OpenCV学习笔记(九): 漫水填充:floodFill() 定义: 漫水填充法是一种用特定的颜色填充联通区域(自动选中了和种子点相连的区域,接着将该区域替换成指定的颜色)通过设置可连通像素的上…

68页PPT,读懂中、美、德三国智能制造战略!

来源:清华大学深圳研究生院导 读这份来自清华大学深圳研究生院物流与交通学部的研究和报告,分析了工业4.0趋势下德、中、美竞争与合作,共68页,对于ICT领域投资者是难得好文。张亚勤、刘慈欣、周鸿祎、王飞跃、约翰.翰兹联合推荐这…

事件处理

⼀、事件的基本概念事件 是当⽤户⼿指触击屏幕及在屏幕上移动时,系统不断 发送给应⽤程序的 对象。系统将事件按照特定的路径传递给可以对其进⾏处理的对 象。在iOS中,⼀个UITouch对象表⽰⼀个触摸,⼀个UIEvent 对象表⽰⼀个事件。事件对象…

pytorch查看打印网络参数总个数

print("Total number of paramerters in networks is {} ".format(sum(x.numel() for x in net.parameters())))其中net是代码中的网络模型

OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize()

OpenCV学习笔记(十):图像金字塔Pyramid和图像缩放:pyrDown(),pyrUp(),resize() 一、图像金字塔定义: 图像金字塔是图像中多尺度表达的一种,最主要用于图像的分割,是一种以多分辨率来解释图像的…

php分享二十四:数组

1:isset() 对于数组中为 NULL 的值不会返回 TRUE,而 array_key_exists() 会。 2:利用array_filter和strlen快速过滤数组中等于0的值 $path str_replace(array(/, \\), DIRECTORY_SEPARATOR, $path); $parts array_filter(explode(DIRECTORY…

量子纠缠和宇宙黑洞

2019年7月,量子纠缠(两个光子)照片首次公布2019年4月,宇宙黑洞(质量为太阳的65亿倍)照片首次公布来源:吴志刚科学网博客量子纠缠和宇宙黑洞,一个极小,一个极大&#xff0…

pytorch的F.cross_entropy交叉熵函数

F.cross_entropy计算交叉熵损失,代码为: lossF.cross_entropy(out, y) 其中out是网络输出的概率向量,y是真实标签,注意y是标量。使用这个函数时应该特别注意out是没有经过softmax处理过的。因为调用F.cross_entropy函数时会通过…

QT学习笔记(十六):setwindowflags的属性总结

QT学习笔记(十六):setwindowflags的属性总结 此枚举类型用于为小部件指定各种窗口系统属性。它们是不常用的,但在一些情况下是必要的。其中一些标志取决于底层窗口管理器是否支持它们。 主要类型有 enum WindowType {Widget 0x…

1143 多少个Fibonacci数

1143 多少个Fibonacci数 时间限制:500MS 内存限制:65536K 提交次数:270 通过次数:16 题型: 编程题 语言: G;GCC Description 给你如下Fibonacci 数的定义: F1 1 F2 2 Fn Fn-1 Fn-2 (n > 3) 给你两个数a与b,现要求你计算在a与b之间&…

这些重大科技领域问题,听听专家怎么说

来源:科技日报从前不久结束的全英华人教授协会年会上了解到,目前人类面临的许多问题都可以通过扎实的科研创新和精准的技术应用予以解决;新的技术领域的出现,不代表传统技术方法都要丢弃;尽管摆在广大科技从业者面前的…

plt.fill_between用法

plt.fill_between用颜色填充两条曲线之间的区域plt.fill_between(x, y1, y2),其中x是横坐标,y1和y2是两条曲线,这个函数的作用是用颜色填充y1和y2这两条曲线之间的区域。 该函数最常用的用法是已知均值曲线和标准差,画出标准差覆…

QT+OpenCV综合示例:载入、读取图片

QTOpenCV综合示例:载入、读取图片1、代码:2、运行结果:下载1 GitHub: 下载2 1、代码: 1)opencv_imwrite_Q.pro 添加: INCLUDEPATH D:\opencv-3.1.0\opencv\build\includewin32:CONFIG(release, debug|re…

swift inheritace 继承

class Base {var base_x 0static var base_y 1final var base_z 12func baseInc() {base_x 1}class func baseMuti() {base_y - 1} }class Parent {func parentInc() {print("parnetInc")} }class Child: Base {//属性也加overrideoverride var base_x: Int {wi…

“算法战:DARPA下一代人工智能计划初见成效” 背景分析与初步研判

2018年9月,美国国防高级研究计划局(DARPA)宣布将出资20亿美元,用于开发新的人工智能技术。近日,DARPA副局长彼得海纳姆在华盛顿接受记者采访时说,DARPA的“下一代人工智能”(AI Next)计划在实施…

python画PR曲线(precision-recall曲线)

使用python画precision-recall曲线的代码是: sklearn.metrics.precision_recall_curve(y_true, probas_pred, pos_labelNone, sample_weightNone) 以上代码会根据预测值和真实值,并通过改变判定阈值来计算一条precision-recall典线。 注意&#xff1a…

OpenCV学习笔记(十一):阈值化:threshold(),adaptivethreshold()

OpenCV学习笔记(十一):阈值化:threshold(),adaptivethreshold() 一、定义: 1)固定阈值操作 double threshold( InputArray src, // 输入图像,单通道 OutputArray dst, // 输出图像 double…