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

时间:2011-06-02 07:32:13

标签: http html5

我正在观看有关Html 5 WebSockets的许多演示文稿,其中服务器可以初始化与客户端的连接并在没有客户端请求的情况下推送数据。

我们不需要投票等。

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

3 个答案:

答案 0 :(得分:9)

因为首次设计http时,它意味着用于从服务器检索文档。最简单的方法是在客户端向服务器请求文档并将其作为响应传递(或者在不存在的情况下发生错误)。如果你有推送协议意味着服务器需要保持客户端连接可能需要很长时间才能产生更多的资源管理问题 - 请记住我们在这里谈论的是20世纪90年代早期。

答案 1 :(得分:2)

Http旨在简单地从服务器检索超文本文档。当页面只是纯粹的静态html而没有脚本功能时,没有理由向客户端推送任何东西。

由于当时没有必要将东西推回客户端,因此协议保持简单。

答案 2 :(得分:0)

HTTP主要是拉协议 - 有人在Web服务器上加载信息 用户使用HTTP在方便时从服务器提取信息。特别是, TCP连接由想要接收文件的机器启动。