网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

HTTP非持久连接与持久连接 | 第1部分

更新时间:2026年03月27日   作者:spoto   标签(Tag):

超文本传输协议(HTTP)是一种应用层协议,它使用TCP作为传输层协议,通常运行在80端口上。HTTP是一种无状态协议,即服务器不会保留关于客户端过去请求的任何信息。

HTTP连接

  1. 非持久性
  2. 持续存在的

基本前提条件/必备条件

在深入探讨“持久连接与非持久连接”这一主题之前,我们必须先了解一些相关的术语。

  1. 往返时间(Round Trip Time)
  2. TCP三方握手

RTT:延迟时间现在是时候让一个小数据包从客户端传输到服务器,然后再返回客户端了。

RTT = 2 X propagation time

对于持久性或非持久性的连接来说,可以肯定的是,要建立一个TCP连接,需要使用一个RTT值。

2. 每个 RTT 用于发送 HTTP 请求,以及返回 HTTP 响应的前几个字节。因此,通过这些信息可以得知整个文件传输所需的时间。

Total = 2RTT + transmit time

2. TCP三方握手过程:TCP连接可以通过三种方式建立,因此这种连接方式被称为“三次握手”。

  • 请求服务器建立连接。
  • 服务器会返回是否能够建立连接的信息。
  • 客户对服务器发送的响应表示认可。

持久连接与非持久连接的区别

持续存在的HTTP问题/状况非持久性HTTP
在发送响应之后,服务器会保持连接处于开放状态。每个对象需要2个RTT。
同一客户端与服务器之间后续发送的HTTP消息,都是通过开放的连接来传输的。每个TCP连接所消耗的操作系统资源
当客户端遇到某个被引用的对象时,它会立即发送相应的请求。浏览器通常会同时打开多个TCP连接,以便获取所引用的对象。
只需一次RTT操作,就能处理所有被引用的对象。在这里,最多只能通过一个TCP连接发送一个对象。

非持续连接

非持久连接指的是,对于每一个对象,我们都需要创建一个新的连接来将该对象从源端传输到目标端。在这种情况下,一个TCP连接中最多只能传输一个对象。

有两种类型:

非持久性——无需并行连接:每个反对意见都需要两个往返时间(假设没有窗口限制)。其中一个往返时间用于TCP连接,另一个则用于HTTP图像/文本文件的传输。

2. 非持续性的——通过并行连接实现:在并行连接的情况下,数据传输需要额外的开销。

非持续连接与并行连接

非持久连接的优势

  1. 资源的浪费非常少,因为只有当有数据需要传输时,连接才会被建立。
  2. 非持久连接更为安全,因为一旦数据被发送出去之后,连接就会终止,此时就无法再共享任何信息了。

非持久连接的缺点

  1. 在“非持久连接”模式下,数据传输需要更多的CPU资源来处理。

持久连接

非流水线式持久连接:在非管道连接中,我们首先建立一种连接方式,该连接需要两个RTT值。然后,我们发送所有对象的图像/文本文件,这些文件的传输时间各为1个RTT(每个对象都不需要单独的TCP连接)。

2. 流水线式持久连接:在流水线式连接中,2RTT用于建立连接,而1RTT则用于传输所有对象的数据,包括图像或文本数据(假设没有窗口限制)。

无需流水线处理的情况下,数据的持续处理;在采用流水线处理的情况下,数据的持续处理。

持久连接的优势

  • 由于连接数量减少,因此CPU和内存的占用也会降低。
  • 允许对请求和响应进行HTTP流水线处理。
  • 网络拥塞得到缓解(TCP连接数量减少)。
  • 后续请求中的延迟得到了降低(无需进行握手操作)。
  • 可以报告错误,而无需中断TCP连接。

持久连接存在的缺点

  • 即使不需要时,资源也可能被占用,而且这些资源也可能无法被其他人使用。
  • 大多数现代浏览器,如Chrome、Firefox和Internet Explorer,都采用持久连接的方式来处理数据交换。
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料