spdy:SPDY协议

SPDY接入服务

概述

SPDY是Google开发的下一代网络协议,它并不是一种用于替代HTTP的协议,而是对HTTP协议的增强。谷歌表示,引入SPDY协议后,在实验室测试中页面加载速度比原先快64%,并且应用到Gmail中,目前业界支持SPDY的服务器有Netty和Nginx。

  • SPDY增加了一个帧层用于多路复用,多个并发流通过一个TCP连接(或者其他可靠传输流)。这个帧层为类似HTTP的请求响应流进行了优化,现在运行在HTTP之上的应用也能运行在SPDY之上,对web应用开发者来说几乎不需要做什么改变。

  • SPDY会话在HTTP的基础之上提供了四项改进:

    • 多路复用请求:在单个SPDY连接能并发的发起请求,并不限制请求数;
    • 请求优先级:客户端能请求某个资源被优先传输。这避免了高优先级请求被非关键资源堵塞网络通道的问题;
    • 头部压缩:客户端现在发送了大量冗余的HTTP头部信息。因为一个页面可能有50到100个子请求,这些数据是巨大的;
    • 服务端推送流:服务端能向客户端推送数据不需要客户端发起一个请求。
  • SPDY视图保持已有的HTTP语义。所有的特性比如cookies,Etags,Vary headers,Content-Encoding协商,SPDY仅仅替换了网络数据传输方法。

  • Google之所以要改动HTTP协议而不是TCP/IP,是因为改变HTTP只需更新Browser和web server就行了,而改动TCP/IP就困难多了,牵扯面广,需要更新巨量的路由器,服务器和客户端的操作系统。

SPDY通过移动网络连接流程图

SPDY文档结构

  • SPDY分为两层:Framing Layer和HTTP Layer。Framing Layer位于TCP协议层之上,传输的数据单元是frame,同一个TCP连接可以传输多个独立的frame。HTTP Layer则位于Framing Layer之上,负责把HTTP协议与SPDY协议的转换

    • Session层作用:在一个单独到TCP连接上传输多个有序的frame,一个session与一个TCP连接一一对应。Session概念等同于framing layer。为了最好的性能,SPDY期望客户端不要关闭连接直到用户离开这个连接引用的所有页面,或者直到服务端关闭连接。服务端鼓励尽可能长的打开连接,但是,如果需要,能终止连接,当任何一段关闭连接,必须首先发送GOAWAY(2.6.6节)帧,这样端点就能确定在关闭连接前完成请求。
    </

相关推荐

相关文章