为什么HTTP被设计成拉式协议?

为什么HTTP被设计成拉式协议?,http,html,Http,Html,我看了很多关于HTML5WebSockets的演示,其中服务器可以初始化与客户端的连接,并在不需要客户端请求的情况下推送数据 我们不需要投票等 而且,我很好奇,为什么Http最初被设计成一个“拉”协议而不是全双工协议?这种决定背后的原因是什么?Http设计用于从服务器检索超文本文档。当页面只是纯静态html而没有脚本功能时,没有理由将任何内容推送到客户端 由于当时不需要将内容推回到客户端,因此协议保持简单。因为http最初设计时是用来从服务器检索文档的。最简单的方法是当客户机向服务器请求一个文档

我看了很多关于HTML5WebSockets的演示,其中服务器可以初始化与客户端的连接,并在不需要客户端请求的情况下推送数据

我们不需要投票等


而且,我很好奇,为什么Http最初被设计成一个“拉”协议而不是全双工协议?这种决定背后的原因是什么?

Http设计用于从服务器检索超文本文档。当页面只是纯静态html而没有脚本功能时,没有理由将任何内容推送到客户端


由于当时不需要将内容推回到客户端,因此协议保持简单。

因为http最初设计时是用来从服务器检索文档的。最简单的方法是当客户机向服务器请求一个文档并将其作为响应发送(如果不存在,则为错误)。当您使用推送协议时,这意味着服务器可能需要长时间保持客户端连接,从而产生更多的资源管理问题-请记住,我们在这里讨论的是20世纪90年代早期。

HTTP主要是一种拉式协议,有人在Web服务器上加载信息,然后 用户在方便的时候使用HTTP从服务器中提取信息。特别地,
TCP连接由希望接收文件的计算机启动。

当时似乎是个好主意:)。回想一下当时的“互联网”有很大的不同。HTTP现在只是我们留下的一段历史。这是一件儿童外套,当你已经成熟的时候,这不是很舒服。现在我们使用HTTP传输数据,将使用其他协议传输数据。请注意,HTTP/2添加了“推送”。+1。它设计用于浏览文档,而不是创建基于事件的应用程序。请求/响应机制的简单性是它今天仍然被使用的原因,也是它的基础。