首页 > 解决方案 > HTTP 协议无连接且默认使用 TCP,这有什么意义?

问题描述

我读到 HTTP 协议默认使用可靠的 TCP 连接,并且 HTTP 功能之一是无连接的。现在我很困惑这有什么意义?它如何使用 TCP,同时它是无连接的,据我所知 TCP 是面向连接的

标签: httpwebtcp

解决方案


HTTP 和 TCP 是不同的东西。TCP是传输层协议,而HTTP是应用层协议。HTTP 使用 TCP 进行数据传输。

IMO这个网站有一个很好的解释:

HTTP是无连接的:HTTP客户端,即浏览器发起HTTP请求,请求发出后,客户端等待响应。服务器处理请求并在客户端断开连接后发回响应。因此客户端和服务器仅在当前请求和响应期间相互了解。在新连接上发出进一步的请求,例如客户端和服务器彼此是新的。

然而,维基百科将 HTTP 定义为无状态:

HTTP 是一种无状态协议。无状态协议不要求 HTTP 服务器在多个请求期间保留有关每个用户的信息或状态。但是,一些 Web 应用程序使用例如 HTTP cookie 或 Web 表单中的隐藏变量来实现状态或服务器端会话。

根据他们的解释,这些术语似乎可以互换使用。然而,这些都不是真的,因为使用中的 HTTP 版本允许您通过 cookie 等识别用户并创建持久连接。


推荐阅读