就我而言,Ajax为使用HTTP协议的面向连接的行为提供了一种解决方法。但是为什么HTTP协议最初不是设计成连接的?
答案 0 :(得分:11)
因为它旨在用于连接没有意义的事情。
它被设计为超文本传输协议,这意味着它的职责是简单地允许发送“请将文档X发送给我”的形式的消息,并且“这里是文档X,按照您的要求”。
这样的协议应该使用持久连接?</ p>
答案 1 :(得分:6)
简单。
回想起来可能不是一件坏事,因为这意味着HTTP很简单,这意味着它可以很容易地用于简单的东西。 你可以通过在它上面构建图层来将它用于需要状态的更难/更复杂的东西。
正是这种简单性使得HTTP被广泛采用并使其具有吸引力。 如果它不简单,那么它只是另一个复杂的protpocol,n-one使用,除非他们必须这样做。 如果你不相信我,你能告诉我为什么你不使用说RPC用于通信而X11用于显示/渲染你的ajax应用程序? :d
记住HTTP最初设计用于实现类似读/写信息存储的维基,而不是在线商店,银行,文字处理器等。 我记得在阅读Tim Berniers-Lee的采访时,他非常高兴wiki被广泛接受(用于解释)他的网络工作方式。 在实践中,这不会发生在更广泛的网络上,大多数网站都会禁用旨在启用此功能的HTTP PUT方法。
答案 2 :(得分:4)
AJAX不是面向连接的行为的解决方法。这是为了确保基于用户交互,您只想更新客户端上的一部分内容,而不是再次从服务器获取完整标记。它不会在您的浏览器和Web服务器之间建立往返连接。
如果每个服务器都与每个客户端建立了实时连接,那么互联网的大小将仅限于数百万用户。
答案 3 :(得分:4)
最初是HTTP,仍然是无连接的。 AJAX只是利用现代浏览器的JavaScript功能将XML(或通常是JSON)发送到服务器而无需重新加载页面。
如前所述,主要原因是可扩展性。为网站的每个观众维护一个活跃的连接将是非常耗费资源的。此外,事实是HTTP的原始创建者没有想到对具有维护连接的系统的任何需求 - HTTP的想法只是发送对请求的文本响应然后完成。
答案 4 :(得分:2)
出于可扩展性的原因。维护连接会占用资源。
答案 5 :(得分:0)
我认为原因很简单 - 创建http时:
1)大多数/所有页面都是静态的 2)互联网上几乎没有商业存在,人们认为链接可能不会被指向不同的网站。
因此,静态页面+非本地内容=连接免费协议。