老李谈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

老李谈HTTP1.1的长连接相关推荐

  1. 老李谈HTTP1.1的长连接 1

    老李谈HTTP1.1的长连接 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.如果对课程感兴趣,请大家咨询qq:908821478 ...

  2. HTTP长连接短连接

    一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...

  3. http 长连接 短连接

    一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...

  4. HTTP的长连接和短连接

    一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...

  5. HTTP的长连接(持久连接)和短连接

    HTTP的长连接和短连接     本文总结&分享网络编程中涉及的长连接.短连接概念.     关键字:Keep-Alive,并发连接数限制,TCP,HTTP 一.什么是长连接 HTTP1.1规 ...

  6. 长连接、短连接的区别

    1) 定义: 长连接:一次TCP连接上可以传送多个HTTP请求和响应: 短连接:一次传输完成立即断开TCP连接:下次传输需要重新TCP三次握手: 2) 使用场景: 长连接:适用于操作频繁.一对一场景, ...

  7. HTTP - 长连接 短连接 长轮询 短轮询 心跳机制

    错觉与突然的察觉 大多数人都知道HTTP1.0不支持长连接,知道HTTP1.1支持长连接. 这是业界的一个常识. 然而这样的描述导致了一些不做网络底层开发的开发者都下意识的认为HTTP1.1是一个可以 ...

  8. HTTP协议中的长连接和短连接(keep-alive状态)

    什么是长连接 长连接还是短连接 相比于短连接,长连接更节省资源.如果每发送一条消息就要创建链路.发起握手认证.关闭链路释放资源,会损耗大量的系统资源.长连接只在首次创建时或者链路断连重连才创建链路,链 ...

  9. HTTP1.1 Keep-Alive到底算不算长连接?

    ✎ 码甲说 在基础架构部浸润了半年,有一些认知刷新想和童靴们交代一下, 不一定全面,仅代表此时的认知, 也欢迎筒靴们提出看法. 本文聊一聊口嗨用语:"长连接.短连接", 文章会按照 ...

最新文章

  1. LTE - PUCCH Format2
  2. JavaScript编码风格指南
  3. 好好学习网--2009年十大新兴企业技术:MapReduce折桂
  4. windows socket 简单实例
  5. mysql se_常见的MySQL命令
  6. Net设计模式实例之桥接模式( Bridge Pattern)(4)
  7. 读大师的书 说自己的话——《传世经典书丛评注版》邀你来点评
  8. 如何取消github邮件订阅
  9. 视觉测量—结构光标定1
  10. 使用 Kind 在 5 分钟内快速部署一个 Kubernetes 高可用集群
  11. 一个简单的显示阴历的日历。
  12. 虾皮二面:如何设计优惠券系统?
  13. 网上计算机培训评语,电脑绘画班评语
  14. 基于51单片机的大棚环境土壤湿度光强监测系统proteus仿真原理图PCB
  15. 常见大数据学习网站总结(不定期更新)
  16. Linux安装jdk详细步骤,二进制发布包安装!
  17. 领英暂停国内注册后,有哪些方法可获取账号?
  18. 安装算量软件解决造价人的痛点难点
  19. wandb快速入门使用教程
  20. 函数要多小才够好——谈小函数之道[性能?]

热门文章

  1. mysql lib 5.5.28_mysql5.5.28在Linux下的安装
  2. Nodejs 操作 MongoDb 数据库
  3. LeetCode 2044. 统计按位或能得到最大值的子集数目(状态压缩DP)
  4. 我们并没有觉得MapReduce速度慢,直到Spark出现
  5. 程序员面试金典 - 面试题 16.15. 珠玑妙算(map计数)
  6. 评论数据获取、词频统计、词云图
  7. 排序:快速排序与归并排序
  8. vuedraggable示例_vuedraggable快速入门
  9. python xlrd使用_python处理Excel xlrd的简单使用
  10. ab的plc跟西门子哪个好些_2020滚筒洗衣机哪个牌子好?想买滚筒洗衣机的看过来!...