http - HTTP 协议无连接且默认使用 TCP,这有什么意义?
问题描述
我读到 HTTP 协议默认使用可靠的 TCP 连接,并且 HTTP 功能之一是无连接的。现在我很困惑这有什么意义?它如何使用 TCP,同时它是无连接的,据我所知 TCP 是面向连接的
解决方案
HTTP 和 TCP 是不同的东西。TCP是传输层协议,而HTTP是应用层协议。HTTP 使用 TCP 进行数据传输。
IMO这个网站有一个很好的解释:
HTTP是无连接的:HTTP客户端,即浏览器发起HTTP请求,请求发出后,客户端等待响应。服务器处理请求并在客户端断开连接后发回响应。因此客户端和服务器仅在当前请求和响应期间相互了解。在新连接上发出进一步的请求,例如客户端和服务器彼此是新的。
然而,维基百科将 HTTP 定义为无状态:
HTTP 是一种无状态协议。无状态协议不要求 HTTP 服务器在多个请求期间保留有关每个用户的信息或状态。但是,一些 Web 应用程序使用例如 HTTP cookie 或 Web 表单中的隐藏变量来实现状态或服务器端会话。
根据他们的解释,这些术语似乎可以互换使用。然而,这些都不是真的,因为使用中的 HTTP 版本允许您通过 cookie 等识别用户并创建持久连接。
推荐阅读
- java - 如何使用 MS Graph / REST 在 SharePoint 中创建新的内容类型?
- c - 如何在C中将数组元素向右移动两个值?
- azure - 浏览部署在 Azure 中的 Angular 8 应用程序时出错
- vba - 将字典添加到数组
- charts - 在 Tradingview 图表上使用标志导出数据
- apostrophe-cms - 撇号将条目添加到 default.json 应该在数据库中
- python - PyQt5 QLCD倒计时
- javascript - 有没有办法在我的主 html 或 javascript 中调用另一个 .html 文件
- python - 将 VLC 音频引入 Discord
- reactjs - 面临在reactjs中禁用复选框的问题