第九章 HTTP的功能追加协议

虽然HTTP协议既简单有快捷,但是随着时代的发展,其功能使用上捉襟见肘的疲惫状态已经凸显。

消除HTTP瓶颈的SPDY

Google在2010年发布了SPDY,其开发目标旨在解决HTTP的性能瓶颈,缩进Web页面的加载时间(%50)。

HTTP的瓶颈

  • 一条连接上只能发送一个请求;
  • 请求只能从客户端开始,客户端不可以接收除响应以外的指令;
  • 请求/响应首部未经压缩就发送,首部信息越多延迟越大;
  • 发送冗长的首部,每次互相发送相同的首部造成的浪费较多;
  • 可任意选择数据压缩格式,非强制压缩发送。
Ajax的解决办法:

有效利用JavaScript和DOM的操作,以达到局部Web页面替换加载的异步通信手段。由于只更新一部分页面,响应中传输的数据量因此而减少。

Comet的解决办法:

通常服务器端接收到请求,在处理完毕后就会立即返回响应,但是为了实现推送功能,Comet会先将响应置于挂起状态,当服务器有内容更新时,再返回该响应。因此,服务器端一旦有更新,就可以立即反馈给客户端。

SPDY的设计与功能

SPDY没有完全改写HTTP协议,而是在TCP/IP的应用层与传输层之间通过新加会话层的形式运作。同时,考虑到安全问题,SDPY规定通信中使用SSL。

  • 多路复用流;
  • 赋予请求优先级;
  • 压缩HTTP首部;
  • 推送功能;
  • 服务器提示功能。

使用浏览器进行全双工通信的WebSocket

WebSocket技术主要是为了解决Ajax和Comet里XMLHttpRequest附带的缺陷所引起的问题。

WebSocket协议

一旦Web服务器与客户端之间建立起WebSocket协议的通信连接,之后所有的通信都依靠这个专用协议进行。只要通信一确立,任意一方都可直接向对方发送报文。

Web服务器管理文件的WebDAV

WebDAV(基于万维网的分布式创作和版本控制)是一个可对Web服务器上的内容直接进行文件复制、编辑等操作的分布式文件系统。除了创建、删除文件的基本功能,它还具备文件创建者管理、文件编辑过程中禁止其他用户内容覆盖的枷锁功能,以及对文件内容修改的版本控制功能。