HTTP的瓶颈
- 一条连接上只可发送一个请求。
- 请求只能从客户端开始。客户端不可以接收除响应以外的指
令 - 请求 / 响应首部未经压缩就发送。首部信息越多延迟越大
- 发送冗长的首部。每次互相发送相同的首部造成的浪费较
多 - 可任意选择数据压缩格式。非强制压缩发送
解决方法
Ajax(Asynchronous JavaScript and XML, 异 步 JavaScrit与 XML技术)由于它只更新一部分页面,响应中传输的数据量会因此而减少,但可能会导致大量请求。
Comet,将相应挂起,当服务器有更新时实时返回给客户端,做到了实时更新,但一次链接的持续时间变长,为了维持连接也消耗了更多资源。
SPDY,SPDY 以会话层的形式加入,控制对数据的流动,但还是采用 HTTP建立通信连接。
优点: 无限制处理多个HTTP请求,而且可设置请求的优先级
压缩首部
服务器可主动向客户端推送数据
可以主动提示客户端请求所需的资源
局限: SPDY 基本上只是将单个域名( IP 地址)的通信多路复用,所以当一个 Web 网站上使用多个域名下的资源,改善效果就会受到限制
WebSocket
WebSocket,即 Web 浏览器与 Web 服务器之间全双工通信标准,一旦 Web 服务器与客户端之间建立起 WebSocket 协议的通信连接,之后所有的通信都依靠这个专用协议进行。通信过程中可互相发送JSON、XML、HTML或图片等任意格式的数据。
特点: 推送功能,服务器直接向客户端发送数据
减少通信量,一旦建立起连接,就希望一直保持连接状态
连接机制:HTTP连接建立后需要一次握手