HTTP长连接简介

HTTP1.1中引入了长连接,且HTTP默认就是长连接。

有长连接就有短连接,二者有什么区别呢?

HTTP是基于TCP的,所以在传输数据的时候,会进行三次握手和四次挥手。

短连接: 每次发起HTTP请求都要进行连接,然后再传输完后关闭连接。

长连接: 发起完HTTP请求后,并不关闭连接,当连接复用次数到一定次数,或者过了一定时间、或者客户端主动释放连接才会关闭连接。

HTTP长连接详情

长连接是由一个Connecton字段控制的,有两个取值:
1、 Keep-Alive 表示使用长连接,默认
2、 Close 表示关闭长连接

复用详解

HTTP长连接的本质就是对TCP连接的复用,一个浏览器可能会发送建立狠很多个HTTP,也就是TCP,当浏览器需要发送一个HTTP时,怎么从多个TCP中找到自己的TCP呢?

通过 源IP地址、源端口号,目的IP地址、目的端口号 这个四元组来唯一确定一个TCP,根据这个四元组去系统里查找,然后复用。

HTTP长连接时间控制
HTTP长连接什么时候关闭呢?如果客户端和服务器之间不发送数据了,还不断开连接,就会造成资源浪费。怎么控制长连接的存活时间呢?
1、 客户端主动关闭,发送一个HTTP包,其中connection = close。
2、 服务器一般不会主动释放长连接。有以下两种策略:
2.1、 设置存活时间,当超过存活时间后,服务器自动断开长连接
2.2、 设置请求次数,当客户端请求超过请求次数后,就断开连接。

HTTP长连接的过程
当多个请求先后调用HTTP发送的时候,可以连续发送多个HTTP请求,但是响应确实FIFO,响应顺序严格按照发送请求返回,如果前一个响应阻塞,后边的响应也都阻塞,这也叫做队头阻塞

HTTP长连接和短连接相关推荐

  1. 跨进程通信,到底用长连接还是短连接

    一个完整的软件系统大多数情况下是由多个进程共同协作进行的,哪怕它们在同一台服务器上.所以,进程之间如何进行高效的通信至关重要. 单个应用程序+单个数据库这套基础开发套餐我相信每个人都经历过,甚至在初期 ...

  2. 长连接、短连接、短轮询、长轮询

    长连接.短连接.短轮询.长轮询 短连接:每次Http请求都会建立Tcp连接,管理容易 长连接:只需要建立一次Tcp连接,以后Http请求重复使用同一个Tcp连接,管理难 短轮询:重复发送Http请求, ...

  3. HTTP长连接和短连接以及推送服务原理(转)

    HTTP长连接和短连接以及推送服务原理 转自:http://blog.csdn.net/freewaywalker/article/details/50067757 HTTP长连接和短连接1 1. H ...

  4. HTTP长连接和短连接 + Websocket

    HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题,T ...

  5. PHP tcp短链接,http请求怎样实现TCP长连接、短连接

    HTTP连接分为长连接和短连接,而我们现在常用的都是HTTP1.1,因此我们用的都是长连接. 这句话其实只对了一半,我们现如今的HTTP协议,大部分都是1.1的,因此我们平时用的基本上都是长连接.但是 ...

  6. TCP长连接和短连接

    2019独角兽企业重金招聘Python工程师标准>>> 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前,server与client之间必须建立一个连接,当读写操 ...

  7. HTTP长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  8. 网络:长连接、短连接

    1. HTTP协议与TCP/IP协议的关系 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址 ...

  9. [转]TCP(HTTP)长连接和短连接区别和怎样维护长连接

    原文链接 一.HTTP协议和TCP协议 HTTP的长连接和短连接本质上是TCP长连接和短连接.HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议.IP协议主要解决网络路由和寻址问题, ...

  10. 什么是长连接和短连接?(长链接、短链接)什么时候使用长连接、短链接?

    文章目录 什么是长连接和短连接? 什么时候使用长连接.短链接? 定义 适用场景 什么是长连接和短连接? 在HTTP/1.0中默认使用短连接.也就是说,客户端和服务器每进行一次HTTP操作,就建立一次连 ...

最新文章

  1. 微信小程序import和include
  2. php网页添加图片的代码,天天查询-PHP版的kindeditor编辑器加图片上传水印功能
  3. AI黑箱:我们要用AI解释AI?
  4. c#用正则表达式获得指定开始和结束字符串中间的一段文本
  5. C++位运算详解(转)
  6. Linux vim打开文件的四种方式
  7. Nginx实现404页面的几种方法
  8. 如何使用TensorFlow玩转深度学习?
  9. 【使用指南】WijmoJS 前端开发工具包
  10. 更新数据时出错——所有记录中均未找到搜索关键字
  11. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_4 请求参数绑定集合类型
  12. C# excel导入导出,NOPI ,简单例子
  13. 【20220912】电商业务的核心流程
  14. imagenet ILSVRC2012下载及其matlab处理方法
  15. JavaScript 教程,很好的!
  16. php pdo函数说明,PHP PDO函数库详解,pdo函数库详解
  17. 多商家父订单子订单_70多份订单被退回,商家查看信息傻眼了,美团:封店180天...
  18. 客户端服务器通信demo(续) -- 使用二进制协议 (附源码)
  19. 样式集(14)填写信息弹窗
  20. 毫秒级返回数据,TDengine 在大疆车载智能驾驶云端平台上的应用

热门文章

  1. 检错码与纠错码,一码归一码
  2. “双态IT”成就业务“互联网+”转型 —— 联想发布《联想双态IT白皮书》和“双态IT”解决方案家族...
  3. 【参考】MTK线刷工具错误代码大全及解决方法
  4. 入门必看,51单片机学习三步走
  5. 仓库管理软件 v1.0 绿色破解版
  6. 模拟电子技术基础 --1. 常用半导体器件
  7. 原理图符号(原理图库)创建流程及注意事项
  8. Android修改PackageInstaller自动安装指定应用,android开发网易新闻
  9. Google桌面搜索使用与技巧
  10. three.js实现球体地球城市模拟迁徙