首页 > 技术文章 > 理解http的无连接

flyover 2020-12-03 11:57 原文

谢希仁版本:

无连接,这就是说虽然http使用了tcp连接,但通信双方在交换http报文之前不需要先建立http连接。

思否:

无连接,限制每次连接只处理一个请求,服务器处理完客户的请求,并收到用户的应答后就断开连接

优点:节省传输时间

此无连接并非字面上的没有连接(那为什么要在字面上用无连接这个词,真的是不懂),事实上,这个定义也符合http短连接的定义,但无连接强调的是http的特性,短连接可理解为一种是实现。

无连接的含义也可以结合HTTP无状态的含义在应用层面上去理解:每一个请求都拥有自己的请求体,期望接收到唯一的对应的响应体,而每一次的请求都相互独立,与上一次或下一次的请求毫无关系,哪怕是在同一条连接中(后面说的长连接)。也正因为这个特性,我们在考虑业务代码实现的时候,无需考虑请求之间的关系,只需考虑业务是如何在当前请求完成的。

而HTTP真正的连接,根据计算机网络体系的协议栈可知,是通过运输层的TCP协议实现的,下层向上层提供了可靠的连接,上层屏蔽了下层的具体实现,所有的操作均在可靠的连接基础之上。HTTP使用TCP的目的是为了保证数据传输的可靠性和完整性。

简单来说就是:

  • TCP的面向连接是基于网络底层的数据传输。
  • HTTP的无连接是基于应用层面的沟通交互。

简单化理解:
不同的请求之间相互独立。

推荐阅读