Web异步与实时交互:iframe AJAX WebSocket开发实战
上QQ阅读APP看书,第一时间看更新

1.1 基于HTTP协议的Web交互

HTTP协议(Hyper Text Transport Potocol,超文本传输协议),是基于服务器/客户端模式的无连接、无状态的协议。基于HTTP协议的Web应用中,所有的请求是由客户端发起的,服务器处于被动响应的地位。然而,服务器却相当于是信息的发布者,当有新信息产生时,服务器并不能主动将新信息发送给客户端,必须等待客户端主动发起访问请求建立连接后才能发送给客户端。

当遇到实时监控、即时通信、在线互动等的Web交互开发需求(如设备监控、聊天室、股票行情等需求)时,传统的Web交互技术显得力不从心。最初,客户端只能通过设定自动刷新时间的方式(如使用<meta>标签,或通过JavaScript代码进行设定)使浏览器主动刷新,向服务器端发送请求,来获取服务器端的新信息。这种方式有以下几个缺点。

(1)刷新页面的时候,网页会呈现一片空白,影响用户的体验。

(2)在多数情况下页面中需要更新的信息只是很小一部分,其他信息不变。这样,在刷新整个页面时,传送了额外的信息,使得页面刷新速度变慢,并增加了网络的负担。

(3)由于客户端隔一段时间才发送一次请求,并不能实时获得服务器端的新信息,有一定延迟。

其中,问题(1)(2)可以通过1.2节中介绍的Web异步技术来解决;问题(3)可以通过1.3节中介绍的Web实时交互技术来解决。