HTTP的升级产品:SPDY

一、什么是SPDY?

SPDY是Google开发的基于传输控制协议(TCP)的应用层协议 。目前已经被用于Google Chrome浏览器中来访问Google的SSL加密服务。SPDY当前并不是一个标准协议,但SPDY的开发组已经开始推动SPDY成为正式标准(现为互联网草案),Google Chrome,Mozilla Firefox和Opera均已支持SPDY协议。SPDY协议类似于HTTP,但旨在缩短网页的加载时间和提高安全性。SPDY协议通过压缩、多路复用和优先级来缩短加载时间。SPDY并不是首字母缩略字,而仅仅是”speedy”的缩写。

设计SPDY的目的在于降低网页的加载时间。通过优先级和多路复用,SPDY使得只需要建立一个TCP连接即可传送网页内容及图片等资源。SPDY中广泛应用了TLS加密,传输内容也均以gzip或DEFLATE格式压缩(与HTTP不同,HTTP的头部并不会被压缩)。另外,除了像HTTP的网页服务器被动的等待浏览器发起请求外,SPDY的网页服务器还可以主动推送内容。

二、SPDY与HTTP有什么区别?

万维网是在HTTP协议的基础上开发的,它是一个应用层协议,使用TCP作为传输层。这意味着客户端的每个请求创建都要一个新的服务器连接。虽然它最初是可以帮助使问题简单些,但对于现在Web的需求它会导致一些问题。SPDY的设计,就是为了解决HTTP协议中的这些缺点。它使用单一连接来处理所有客户端和服务器之间的请求/响应。

SPDY并不用于取代HTTP,它只是修改了HTTP的请求与应答在网络上传输的方式;这意味着只需增加一个SPDY传输层,现有的所有服务端应用均不用做任何修改。 当使用SPDY的方式传输,HTTP请求会被处理、标记简化和压缩。比如,每一个SPDY端点会持续跟踪每一个在之前的请求中已经发送的HTTP报文头部,从而避免重复发送还未改变的头部。而还未发送的报文的数据部分将在被压缩后被发送。

左边是普通 HTTPS 加载,右边是 SPDY 加载。

SPDY 协议只是在性能上对 HTTP 做了很大的优化,其核心思想是尽量减少连接个数,而对于 HTTP 的语义并没有做太大的修改。具体来说是,SPDY 使用了 HTTP 的方法和页眉,但是删除了一些头并重写了 HTTP 中管理连接和数据转移格式的部分,所以基本上是兼容 HTTP 的。

Google 在 SPDY 白皮书里表示要向协议栈下面渗透并替换掉传输层协议(TCP),但是因为这样无论是部署起来还是实现起来暂时相当困难,因此 Google 准备先对应用层协议 HTTP 进行改进,先在 SSL 之上增加一个会话层来实现 SPDY 协议,而 HTTP 的 GET 和 POST 消息格式保持不变,即现有的所有服务端应用均不用做任何修改。

因此在目前,SPDY 的目的是为了加强 HTTP,是对 HTTP 一个更好的实现和支持。至于未来 SPDY 得到广泛应用后会不会演一出狸猫换太子,替换掉 HTTP 并彻底颠覆整个 Internet 就是 Google 的事情了。

SPDY的核心是帧管理层(framing layer),它管理两个端点间的连接和数据的传输。 两个端点之间可以有多个数据流。 在帧管理层的顶部,SPDY实现了HTTP请求/响应处理。这使得我们不需要对现有网站做太大的更改或不更改就可以使用SPDY。

三、为什么要建立SPDY?

距离万维网之父蒂姆·伯纳斯-李发明并推动 HTTP 成为如今互联网最流行的协议已经过去十几年了(现用 HTTP 1.1 规范也停滞了 13 年了),随着现在 WEB 技术的飞速发展尤其是 HTML5 的不断演进,包括 WebSockets 协议的出现以及当前网络环境的改变、传输内容的变化,当初的 HTTP 规范已经逐渐无法满足人们的需要了,HTTP 需要进一步发展,因此 HTTPbis 工作组已经被组建并被授权考虑 HTTP 2.0 ,希望能解决掉目前 HTTP 所带来的诸多限制。而 SPDY 正是 Google 在 HTTP 即将从 1.1 跨越到 2.0 之际推出的试图成为下一代互联网通信的协议,长期以来一直被认为是 HTTP 2.0 唯一可行选择。

HTTP 协议的不足

    • 单路连接请求低效。HTTP 协议的最大弊端就是每个 TCP 连接只能对应一个 HTTP 请求,即每个 HTTP 连接只请求一个资源,浏览器只能通过建立多个连接来解决。此外在 HTTP 中对请求是严格的先入先出(FIFO)进行的,如果中间某个请求处理时间较长会阻塞后面的请求。
    • HTTP 只允许由客户端主动发起请求。服务端只能等待客户端发送一个请求,在可以满足预加载的现状是一种桎梏。
    • HTTP 头冗余。HTTP 头在同一个会话里是反复发送的,中间的冗余信息,比如 User-Agent、Host 等不需要重复发送的信息也在反复发送,浪费带宽和资源。

SPDY 协议的优点

    • 多路复用请求优化。SPDY 规定在一个 SPDY 连接内可以有无限个并行请求,即允许多个并发 HTTP 请求共用一个 TCP会话。这样 SPDY 通过复用在单个 TCP 连接上的多次请求,而非为每个请求单独开放连接,这样只需建立一个 TCP 连接就可以传送网页上所有资源,不仅可以减少消息交互往返的时间还可以避免创建新连接造成的延迟,使得 TCP 的效率更高。此外,SPDY 的多路复用可以设置优先级,而不像传统 HTTP 那样严格按照先入先出一个一个处理请求,它会选择性的先传输 CSS 这样更重要的资源,然后再传输网站图标之类不太重要的资源,可以避免让非关键资源占用网络通道的问题,提升 TCP 的性能。
    • 支持服务器推送技术。服务器可以主动向客户端发起通信向客户端推送数据,这种预加载可以使用户一直保持一个快速的网络。
    • SPDY 压缩了 HTTP 头。舍弃掉了不必要的头信息,经过压缩之后可以节省多余数据传输所带来的等待时间和带宽。
    • 强制使用 SSL 传输协议。Google 认为 Web 未来的发展方向必定是安全的网络连接,全部请求 SSL 加密后,信息传输更加安全。

按照 Google 的说法,SPDY 被创造出来的唯一目的就是让 Web 更快(strive to make the whole web fast),其名字 SPDY(Speedy) 也似乎在暗示着这一点。

  • 普通用户:对于使用者来说,隐藏在浏览器下面的 SPDY 相比 HTTP 没有任何区别,但是我们可以感觉到 Google 服务在 Chrome 下异常的快,这就是 SPDY 的功劳了。此外网站信息传输加密后不用担心信息被截取等,大大增加了安全性和保密性。
  • 前端人员:对于前端工程师们来说,提升页面效率是一件很重要的事情,目前大多采用像 CSS Sprites 等方法来优化网站,对于因为页面加载时每张图片、icon 都请求一个连接甚至采用在不同页面引用不同图片来降低一个页面内图片的请求数量。而现在有了 SPDY 的请求优化可以将请求顺序进行重排,这样可以在很大程度上缓解页面加载时图片请求带来的影响。
  • 运维人员:SPDY 在降低连接数目的同时,还使得服务器上每个客户端占用的资源也减少,从而可以释放出更多内存和 CPU 。此外 SPDY 综合起来可以将浏览速度提升一倍,页面加载延迟方面的改进达 64% 。
时间: 2024-10-12 20:39:01

HTTP的升级产品:SPDY的相关文章

智原GM推出GM8126升级产品GM8138

Rescue Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want to save Angel. Their task is:

决定产品可靠性的关键_金升阳模块电源

工业电源产品是工业设备的心脏,用户最为关注的不是电源的价格,也不是电源的功能,更不是电源的效率,而是电源的可靠性,特别是在各种极端恶劣环境下的电源可靠性,即电源无论如何不能被损坏. ? 电源产品的功能其实是很容易实现的,达到某些特性也不太难,但产品的可靠性,特别是恶劣环境下的性能和可靠性保证却很难,必须通过高超的技术研发.优质的原材料.完整的设备.精湛的工艺.严格的过程控制.专项的可靠性筛选,以及多年的经验积累才能得以保证. ? 同时,产品的可靠性不仅取决于设计与制造,客户是否正确使用也有着相当

我差点将产品带向绝路

好久没更新文章了,因为处境不一样了. 前两天和"导师"说,一旦开始干活,学习和思考的精力就不足的样子.他说是,跟他之前碰到的我的状态完全不同. 现在确实静心不下,因为很想把产品升级好,就不用老是分心.现在是发布版本2前夕,希望最后这段时间一切顺利. 回到原题,我为什么差点把产品带向绝路? 10月份,终于把产品1.0做了出来,花了两个月,我们技术部门感觉这东西还是挺水的,但推出去后周边的反应还是不错的,但我就是有不祥的预感.果然,运转一段时间后,抛开各种闪退bug不说,用户和运营部提出的

618揭秘:这些产品为何成爆款?因有京东亲授“秘籍”

随着618电商年中购物节的逐步收官,由南都和京东双方合力打造的JDND消费指数之<2017年618电商消费报告>也正式出炉.京东大数据显示,6月1日至6月18日,京东商城累计下单金额达1199亿元,累计卖出商品超过7亿件(点击查看详细报告).爆发式增长的背后,京东618期间各品类的战报还透露出一个有趣现象,即根据京东大数据和用户画像定制的产品正在变得更受消费者欢迎.更具市场竞争力.    商家通过京东平台洞察消费者需求 来自蒙牛单品的战报显示,其基于京东大数据和新兴的互联网技术的兴趣,对年轻人

一、磁盘基础与分区

1.1.硬盘设备接口的分类 通常硬盘按照接口类型可分为 接口类型 用途 ATA(又称IDE或PATA).SATA(又称串口IDE) 多用于PC或工作站现也用于存储设备 SCSI.FC.SAS.FATA 用于服务器和存储设备 ATA(Advanced Technology Attachment)40针接口又称IDEIntegrated Drive Electronics电 子集成驱动器或PATA (Parellel ATA).不可热插拔.通常所说ATA.Ultra ATA.DMA.Ultra DM

创新基因可以培育吗

又到了私董圆桌会议的日子,一个个忙碌的企业家身影又重现私董现场.或兴奋,或安静,或带着困扰等待援手.大家如约回到这个激发思想与智慧的场域,开始又一个两天的道场. 在午餐桌上,不知哪位企业家触发了关于创新的话题,一下打开了企业家们的话匣子,于是乎成功的大佬们一个一个如数家珍, 晒起了申请的国家专利数量和研发投入占比:20项,6%:30项,6%:50项,8%:??.最多的一家申请的专利数已达200项,还有一家的研发投入达 到销售收入的14%,并且把实验室建在了台北,由国家863首席科学家领衔研发.这

ASP.NET Core 1.0到底是什么?

ASP.NET Core1.0 是微软的下一代ASP.NET框架.我们将ASP.NET升级到最新版本我们会发现最高级的版本是ASP.NET 4.6对应的FrameWork版本是4.6.1. 那么很多人认为下一个大版本号应该是ASP.NET5.0. 没错开始有一段时间微软决定要将下一代版本定义为5.0,但是最后微软弃用了这样一个决定.决定改为ASP.NET Core1.0对应的framework为.NET Core1.0.为什么要这样做呢?从5.0跨越到1.0不就是表示从头开始了么?看看微软是怎样

iPhone5se难逃“酱油”命运?

苹果春季新品发布会即将举行,按照惯例,只会有一些不痛不痒的产品出现,最起码,不会有革命性的爆点,今年大抵相似,最大的亮点莫过于,苹果有可能会推出一款名叫"iPhone5se"的手机,这是一款传说中的手机,非常神秘,但从网上爆出的谍照看,iPhone5se真实存在,系iPhone5s的升级版,维持4英寸屏幕,两相对比,iPhone5se在外观上并没有太大变化,简直是一模一样,只是增加了玫瑰金色:功能方面最大的不同则是加入了Apple Pay,成为苹果推广支付业务的硬件手段之一,但iPho

视频音频编码器介绍

里只对常见的视频音频编码做一个系统的简单介绍,并不进行详细 探讨.由于我的知识有限,难免有错误的地方,欢迎来信指正.MPEG 系列MPEG 即 (Moving Pictures Experts Group) 运动图象专家组,属于 ISO(International Organization for Standardization) 国际标准组织,他们开发了一系列视频音频编 码,最为大家熟悉的就是 MP3,MPEG-1/2/4.MPEG-1 较早的视频编码,质量 比较差,主要用于 CD-ROM 存