原文链接:http://blog.chinaunix.net/uid-22312037-id-4865410.html
现有的HTTP协议存在如下几个问题: (1)一个连接一个请求 从request发出到response回来之间,TCP连接被独占,即所谓的单工方式。 以浏览器与WEB服务器交互为例,如果页面有多个资源需要加载,那么就会带来延迟。 (2)HTTP头不能压缩 只能对body进行压缩,不能对header压缩。 比如:一个cookie较多的网站,将会对带宽造成很大的浪费。 (3)冗余的HTTP头部 HTTP头部字段多,而且在同一通道中重复发送。 比如:User-Agent、Host等,对于同一页面来说,是相同的,没有必要每次发送都带上。 (4)只能由客户端发起请求。 所有的HTTP请求都只能由客户端发起,服务器只能被动回应。 这些问题在移动场景中尤为严重,不稳定的网络环境使之暴露无遗。 所幸的是,2012年,Google推出了基于TCP的应用层协议SPDY(取 speedy 谐音,意谓更快)。 当然,该协议并不是用于取代HTTP,而是对HTTP协议的增强,具体表现在以下几点: (1)多路复用 一个连接允许多个并发request/response,比如:页面上多个资源可以在一起TCP连接中,并行请求得到。 (2)优先级 并发请求之间可以设置优先级。 (3)HTTP头压缩 压缩HTTP请求头。 (4)HTTP头标记 每一个SPDY端点会持续跟踪每一个在之前的请求中已经发送的HTTP报文头部,从而避免重复发送还未改变的头部。 (5)消息推送 SPDY的网页服务器还可以主动推送内容。 目前主流的浏览器(比如:Chrome、Firefox、Opera、IE)和WEB服务器(比如:Apache、Nginx)都支持SPDY。