【发布时间】:2021-10-23 09:56:48
【问题描述】:
我读到 HTTP 协议默认使用可靠的 TCP 连接 ,并且 HTTP 功能之一是无连接的。 现在我很困惑这有什么意义? 它如何使用 TCP,同时它是无连接的,据我所知 TCP 是面向连接的
【问题讨论】:
我读到 HTTP 协议默认使用可靠的 TCP 连接 ,并且 HTTP 功能之一是无连接的。 现在我很困惑这有什么意义? 它如何使用 TCP,同时它是无连接的,据我所知 TCP 是面向连接的
【问题讨论】:
HTTP 和 TCP 是不同的东西。 TCP 是传输层协议,而HTTP 是应用层协议。 HTTP 使用 TCP 进行数据传输。
IMO this 网站有一个很好的解释:
HTTP 是无连接的: HTTP 客户端,即浏览器发起 HTTP 请求,请求发出后,客户端等待响应。服务器处理请求并在客户端断开连接后发回响应。因此客户端和服务器仅在当前请求和响应期间相互了解。在新连接上发出进一步的请求,例如客户端和服务器彼此是新的。
然而,维基百科将 HTTP 定义为无状态:
HTTP 是一种无状态协议。无状态协议不要求 HTTP 服务器在多个请求期间保留有关每个用户的信息或状态。但是,一些 Web 应用程序使用例如 HTTP cookie 或 Web 表单中的隐藏变量来实现状态或服务器端会话。
根据他们的解释,这些术语似乎可以互换使用。然而,这些都不是真的,因为使用中的 HTTP 版本允许您通过 cookie 等识别用户并创建persistent 连接。
【讨论】: