-
基于HTTP的协议
-
现在基于HTTP的Web浏览器遍布全球,所以无法完全抛弃HTTP。但HTTP协议上的限制以及自身性能,已经无法满足现在的开发需求;
- 因此,HTTP功能上的不足可通过创建一套全新的协议来弥补。它们基本HTTP,但对它进行了扩展;
-
-
消除HTTP瓶颈的SPDY
- SPDY由Google发布,目标是提高HTTP的性能,缩短Web页面50%的加载速度;
-
HTTP的瓶颈
- 一条连接上只可发送一个请求;
- 请求只能从客户端开始。客户端不可以接收除响应以外的指令;
- 请求/响应首部未经压缩就发送。首部信息越多延迟越大;
- 发送冗长的首部。每次互相发送相同的首部造成的浪费较多;
-
可任意选择数据压缩格式。非强制压缩发送;
-
Ajax的解决方法:
- Ajax(Asynchronous JavaScript and XML,异步JavaScript与XML技术)可有效利用JS和DOM操作,达到局部WEB页面替换加载的异步通信手段。由于只更新一部分页面,响应中传输的数据量因此减少;
- Ajax核心技术:XMLHttpRequest的API,通过JS调用就能和服务器进行HTTP通信,从已加载完毕的web页面上发起请求,只更新局部页面;
-
问题:
- 通过Ajax实时获取内容,可能产生大量请求;
-
Ajax仍未解决HTTP协议本身存在的问题;
-
Comet的解决方法:
- 能力说明:一旦服务器端有内容更新了,Comet不会让请求等待,而是直接给客户端返回响应。通过这种"延迟应答",模拟实现服务器端向客户端推送的功能;
- 能力解析:服务器接收到请求后,处理完毕就会立即返回响应,但为了实现推送功能,Comet会先将响应置于挂起状态,当服务器端有内容更新时,再返回该响应。因此,服务器端一旦有更新,就可以立即反馈给客户端;
-
问题:
- 为了保留响应,一次连接的持续时间变长;
- 维持连接会消耗更多资源;
-
仍未解决HTTP协议本身的问题;
- Ajax与Comet只是提高了易用性,但HTTP协议层面的问题仍然没有解决。SPDY的目标就是在协议级别消除HTTP的瓶颈。