答案是“采用许多技术是出于任意历史或社会政治原因,而不是技术原因。” 对于给定问题的最佳解决方案并不总是成为主导技术。(实际上,它很少这样做。)
在2012年,使用HTTP服务器创建与桌面应用程序相当的交互式应用程序时,HTTP和X之间的比较很有趣。事后看来,X可能是开发丰富的,交互式网络部署的应用程序的更好技术。类似交互式桌面的应用程序不能很好地映射到诸如HTTP之类的无状态,面向文档的技术,并且这种不匹配在历史上一直导致创建状态的各种变通方法(黑客),例如cookie,会话等。
但是HTTP的最初目的并不是要开发有状态的类似于桌面的应用程序。它是要检索文档并显示信息 -可以链接到也可以立即显示的其他文档的信息。链接文档收集的想法可以追溯到1960年代,即西奥多·尼尔森(Theodore Nelson)的 “ Xanadu项目 ”。Web应该是Nelson的超文本概念的实现,超文本是试图将印刷的页面(如百科全书或报纸)进行计算机化处理,允许用户单击一下即可将其从一篇文章迅速“跳到另一篇”。
这个想法的许多迭代都来了又去了,例如Apple的Hypercard,它实现了超文本/超链接的概念,但从未部署在网络上。万维网是CERN对超文本概念的基于网络的实现,它之所以兴起,是因为蒂姆·伯纳斯·李(Tim Berners-Lee)免费发布了其浏览器代码库,并允许其他人对其进行试验。这最终导致了Marc Andreesen的Mosaic浏览器,即Netscape的前身。剩下的就是历史。
但是...与许多技术一样,新的可能性开始出现,以至于HTTP或超文本的原始设计者并没有考虑太多。网络开始商业化,人们开始开发具有状态交互性的网站,例如购物车和登录名。越来越明显的是,HTTP的无状态且面向文档的特性不适用于类似于桌面的应用程序。但是到那时,为时已晚。每个人都已经在使用HTTP。因此,今天我们到了这里,各种骇人听闻的AJAX应用程序都竭尽所能,假装它们是桌面应用程序。