科技: 人物 企业 技术 IT业 TMT
科普: 自然 科学 科幻 宇宙 科学家
通信: 历史 技术 手机 词典 3G馆
索引: 分类 推荐 专题 热点 排行榜
互联网: 广告 营销 政务 游戏 google
新媒体: 社交 博客 学者 人物 传播学
新思想: 网站 新书 新知 新词 思想家
图书馆: 文化 商业 管理 经济 期刊
网络文化: 社会 红人 黑客 治理 亚文化
创业百科: VC 词典 指南 案例 创业史
前沿科技: 清洁 绿色 纳米 生物 环保
知识产权: 盗版 共享 学人 法规 著作
用户名: 密码: 注册 忘记密码?
    创建新词条
科技百科
  • 人气指数: 31816 次
  • 编辑次数: 1 次 历史版本
  • 更新时间: 2012-07-18
土土
土土
发短消息
相关词条
M2M
M2M
SPDY
SPDY
MOVE模式
MOVE模式
WebRTC
WebRTC
网页分类技术
网页分类技术
Li-Fi
Li-Fi
Teaser Page
Teaser Page
数字蚂蚁
数字蚂蚁
FOE
FOE
远程立体视频会议
远程立体视频会议
推荐词条
希拉里二度竞选
希拉里二度竞选
《互联网百科系列》
《互联网百科系列》
《黑客百科》
《黑客百科》
《网络舆情百科》
《网络舆情百科》
《网络治理百科》
《网络治理百科》
《硅谷百科》
《硅谷百科》
2017年特斯拉
2017年特斯拉
MIT黑客全纪录
MIT黑客全纪录
桑达尔·皮查伊
桑达尔·皮查伊
阿里双十一成交额
阿里双十一成交额
最新词条

热门标签

微博侠 数字营销2011年度总结 政务微博元年 2011微博十大事件 美国十大创业孵化器 盘点美国导师型创业孵化器 盘点导师型创业孵化器 TechStars 智能电视大战前夜 竞争型国企 公益型国企 2011央视经济年度人物 Rhianna Pratchett 莱恩娜·普莱契 Zynga与Facebook关系 Zynga盈利危机 2010年手机社交游戏行业分析报告 游戏奖励 主流手机游戏公司运营表现 主流手机游戏公司运营对比数据 创建游戏原型 正反馈现象 易用性设计增强游戏体验 易用性设计 《The Sims Social》社交亮 心理生理学与游戏 Kixeye Storm8 Storm8公司 女性玩家营销策略 休闲游戏的创新性 游戏运营的数据分析 社交游戏分析学常见术语 游戏运营数据解析 iPad风行美国校园 iPad终结传统教科书 游戏平衡性 成长类型及情感元素 鸿蒙国际 云骗钱 2011年政务微博报告 《2011年政务微博报告》 方正产业图谱 方正改制考 通信企业属公益型国企 善用玩家作弊行为 手机游戏传播 每用户平均收入 ARPU值 ARPU 游戏授权三面观 游戏设计所运用的化学原理 iOS应用人性化界面设计原则 硬核游戏 硬核社交游戏 生物测量法研究玩家 全球移动用户 用户研究三部曲 Tagged转型故事 Tagged Instagram火爆的3大原因 全球第四大社交网络Badoo Badoo 2011年最迅猛的20大创业公司 病毒式传播功能支持的游戏设计 病毒式传播功能 美国社交游戏虚拟商品收益 Flipboard改变阅读 盘点10大最难iPhone游戏 移动应用设计7大主流趋势 成功的设计文件十个要点 游戏设计文件 应用内置付费功能 内置付费功能 IAP功能 IAP IAP模式 游戏易用性测试 生理心理游戏评估 游戏化游戏 全美社交游戏规模 美国社交游戏市场 全球平板电脑出货量 Facebook虚拟商品收益 Facebook全球广告营收 Facebook广告营收 失败游戏设计的数宗罪名 休闲游戏设计要点 玩游戏可提高认知能力 玩游戏与认知能力 全球游戏广告 独立开发者提高工作效率的100个要点 Facebook亚洲用户 免费游戏的10种创收模式 人类大脑可下载 2012年最值得期待的20位硅谷企业家 做空中概股的幕后黑手 做空中概股幕后黑手 苹果2013营收 Playfish社交游戏架构

SPDY是Google开发的基于传输控制协议(TCP)的应用层协议 。Google最早是在Chromium中提出的SPDY协议。目前已经被用于Google Chrome浏览器中来访问Google的SSL加密服务。

SPDY当前并不是一个标准协议,但SPDY的开发组已经开始推动SPDY成为正式标准(现为互联网草案),Google Chrome和Mozilla Firefox均已支持SPDY协议。SPDY协议类似于HTTP,但旨在缩短网页的加载时间和提高安全性。SPDY协议通过压缩、多路复用和优先级来缩短加载时间[1]。SPDY并不是首字母缩略字,而仅仅是"speedy"的缩写。SPDY现为Google的商标。

设计

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

与HTTP的关系

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

浏览器支持

Google Chrome和Chromium已经支持SPDY。Mozilla Firefox自11.0开始内嵌支持SPDY,但默认并不使用。从Firefox 13开始默认开启对SPDY的支持。

目录

SPDY是什么 AND SPDY如何部署?编辑本段回目录

SPDY是什么 AND SPDY如何部署?——凌空网络文摘

  SPDY 与 HTTP 的关系

  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 ?

   距离万维网之父蒂姆·伯纳斯-李发明并推动 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 协议的不足

  1. 单路连接 请求低效

   HTTP 协议的最大弊端就是每个 TCP 连接只能对应一个 HTTP 请求,即每个 HTTP 连接只请求一个资源,浏览器只能通过建立多个连接来解决。此外在 HTTP 中对请求是严格的先入先出(FIFO)进行的,如果中间某个请求处理时间较长会阻塞后面的请求。

  (注:虽然 HTTP pipelining 对连接请求做了改善,但复杂度增加很大,并未普及)

  2. HTTP 只允许由客户端主动发起请求

  服务端只能等待客户端发送一个请求,在可以满足预加载的现状是一种桎梏。

  3. HTTP 头冗余

  HTTP 头在同一个会话里是反复发送的,中间的冗余信息,比如 User-Agent、Host 等不需要重复发送的信息也在反复发送,浪费带宽和资源。

  SPDY 协议的优点

  1. 多路复用 请求优化

   SPDY 规定在一个 SPDY 连接内可以有无限个并行请求,即允许多个并发 HTTP 请求共用一个 TCP会话。这样 SPDY 通过复用在单个 TCP 连接上的多次请求,而非为每个请求单独开放连接,这样只需建立一个 TCP 连接就可以传送网页上所有资源,不仅可以减少消息交互往返的时间还可以避免创建新连接造成的延迟,使得 TCP 的效率更高。

  此外,SPDY 的多路复用可以设置优先级,而不像传统 HTTP 那样严格按照先入先出一个一个处理请求,它会选择性的先传输 CSS 这样更重要的资源,然后再传输网站图标之类不太重要的资源,可以避免让非关键资源占用网络通道的问题,提升 TCP 的性能。

  2. 支持服务器推送技术

  服务器可以主动向客户端发起通信向客户端推送数据,这种预加载可以使用户一直保持一个快速的网络。

  3. SPDY 压缩了 HTTP 头

  舍弃掉了不必要的头信息,经过压缩之后可以节省多余数据传输所带来的等待时间和带宽。

  4. 强制使用 SSL 传输协议

  Google 认为 Web 未来的发展方向必定是安全的网络连接,全部请求 SSL 加密后,信息传输更加安全。

  SPDY 协议的意义

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

  1. 普通用户:

  对于使用者来说,隐藏在浏览器下面的 SPDY 相比 HTTP 没有任何区别,但是我们可以感觉到 Google 服务在 Chrome 下异常的快,这就是 SPDY 的功劳了。此外网站信息传输加密后不用担心信息被截取等,大大增加了安全性和保密性。

  2. 前端人员:

   对于前端工程师们来说,提升页面效率是一件很重要的事情,目前大多采用像 CSS Sprites 等方法来优化网站,对于因为页面加载时每张图片、icon 都请求一个连接甚至采用在不同页面引用不同图片来降低一个页面内图片的请求数量。而现在有了 SPDY 的请求优化可以将请求顺序进行重排,这样可以在很大程度上缓解页面加载时图片请求带来的影响。例如像极客公园的报名页面,如果报名用户过多,例如极客公园 2012年创新大会或极客公园第 27 期长城会,可以很明显的感觉出头像的请求会拖累整体页面加载变慢甚至变卡,相信对于这点,经常上淘宝或刷微博的会深有体会,一旦网速稍微慢点就会出现页面 加载异常,还有像苹果 App Store(除去服务器因为地区的延迟),豌豆荚这类应用分发平台上应用图标刷新缓慢等,如下面这个视频所示。

  3. 运维人员:

  SPDY 在降低连接数目的同时,还使得服务器上每个客户端占用的资源也减少,从而可以释放出更多内存和 CPU 。此外 SPDY 综合起来可以将浏览速度提升一倍,页面加载延迟方面的改进达 64% 。

  众家支持的 SPDY 协议

   如果你在使用 Chrome 浏览器,同时使用像 Gmail 等 Google 的网络服务的话,其实你已经不再是通过 HTTP 访问这些服务了。在浏览器打开 chrome://net-internals/#spdy 就会发现你已经在使用 SPDY 协议了。(除了包括 Google 自家的 Gmail、Google Plus 等 Google 系服务外,其他公共站点例如 Twitter 和 Webtide 也已经支持该协议。在国内,基于 WebKit 的豌豆荚 2.0 也曾表示将引进Chrome的SPDY技术来进一步提升速度。

   SPDY 的实现需要浏览器客户端和 Web 服务器同时支持。在客户端浏览器这快 Google自家的 Chrome 和Chromium 全系列不用说,都已经支持SPDY; Mozilla 家的 Firefox 自 Firefox 13 也默认开启对 SPDY 的支持。而亚马逊家的 Silk 利用 SPDY 的深度其实不比 Google 自家的 Chrome 和 Firefox 差。

  在Web 服务器方面包括最流行和最广泛的 Apache 在内,Netty、Jeety、Varnish、Erlang 和 Hightide 应用服务器以及面向 node.js 的服务器也都已经宣布支持 SPDY。( Nginx 也表示将支持 SPDY)

  如何部署 SPDY?

   近日 Google 正式发布了适用于最流行 Web 服务器 Apache 的插件 mod_spdy,将其下载安装后你的 Apache 服务器就能使用 SPDY 协议与兼容 SPDY 协议的浏览器如 Chrome、FireFox 等进行通信。像之前所说的那样,SPDY 是运行在 HTTPS 上,非 HTTPS 流量并不会受到 mod_spdy 影响。

  SPDY 部署要求:

  1. Apache 2.2 (≥2.2.4)

  2. mod_ssl 模块开启

  SPDY 部署步骤:

  1. 下载 mod_spdy 模块

  到下载页面下载对应系统的安装包

  2. 安装 mod_spdy 模块

  在系统终端运行下面命令行

  dpkg -i mod-spdy-*.deb
apt-get -f install

  -系统为 Debian/Ubuntu

  ————————————————————

  yum install at (if you do not already have 'at' installed)
rpm -U mod-spdy-*.rpm

  -系统为 CentOS/Fedora

  3. 重启服务器(Apache)

  sudo /etc/init.d/apache2 restart (Debian/Ubuntu)

  4. 确定开启与否

  打开 Chrome 浏览器,输入并前往 chrome://net-internals/#spdy 页面,查看主机名称是否出现在标识栏中。如果出现说明已经部署完毕,如果没有出现去服务器错误日志(error.log)里查询。

  未来的web基础?

  在最新的协议文档里 Google 重新将 SPDY 分为了两层,其中一层被描述为 HTTP-like,大有取代 HTTP 的意图(Google 最近的一篇文章已经直呼 SPDY 为“a replacement for HTTP”)。同时 HTTP 2.0 标准制定工作组(HTTPbis)也表示,SPDY 很有希望接替当前的 HTTP 传输实现。

  考虑到 Chrome 和安卓的份额以及标准的推动,相信 SPDY 会有一个好前景。因此选择此刻支持 SPDY 也是明智的选择。

详解编辑本段回目录

最近周围关于SPDY的讨论很多,它是Google提出的一个新的协议,用来加速Web网络访问。大多数 主流  浏览器Web服务器已经开始发布支持SPDY的版本。所以我觉得去探索更多关于SPDY的知识和它对我们Web开发者的影响是值得的。

什么是SPDY?
万维网是在HTTP协议的基础上开发的,它是一个应用层协议,使用TCP作为传输层(如果对分层概念混淆,参考 OSI参考模型)。这意味着客户端的每个请求创建都要一个新的服务器连接。虽然它最初是可以帮助使问题简单些,但对于现在Web的需求它会导致一些问题。
SPDY的设计,就是为了解决HTTP协议中的这些缺点。它使用单一连接来处理所有客户端和服务器之间的请求/响应。
SPDY的核心是帧管理层(framing layer),它管理两个端点间的连接和数据的传输。 两个端点之间可以有多个数据流。 在帧管理层的顶部,SPDY实现了HTTP请求/响应处理。这使得我们不需要对现有网站做太大的更改或不更改就可以使用SPDY。

使用SPDY有什么好处?
因为少了为每个请求建立连接的开销,响应延迟会很低。
除了数据部分,SPDY也会压缩请求/响应头。对于手机和其他速度很慢甚至要珍惜每个字节的连接,这将是有用的。
SPDY被设计为使用SSL处理所有客户端和服务器间的通信,这意味着该网站会更加安全。
服务器可以使用SPDY推送数据到客户端,而不是等待客户端的请求,这可以帮助网站更有效的利用资源。

已经投入生产环境了?
很多Google的应用和 Twitter已经在使用SPDY,Amazon Silk浏览器 使用SPDY代理。
访问下面的URL,查看哪些网站正在使用SPDY. chrome://net-internals/#spdy

怎样给我的站点添加SPDY支持?

添加SPDY支持的最简单方式是启用Apache的 mod_spdy模块。mod_spdy通过钩子(hook)修改了Apache的默认请求/响应处理过程并添加了SPDY处理。

切换到SPDY带来的速度提升可能会随着网站现有配置而不同。如果你在使用像 wildcard asset hosts(如:assets%d.example.com)之类的HTTP性能优化,那将会导致SPDY创建为同一个端点创建多个连接,因此会降低性能。一些浏览器如Chrome通过 连接池巧妙的处理了这个问题。还有,一些CDN如Amazon Cloudfront仍然 不支持SPDY,所以这些资源需要使用HTTP连接去加载。

你可以使用类似 Chromium Page Benchmarker之类的工具来检测你的网站不同配置下在使用和不使用SPDY情况下的表现。



我需要一个SSL证书吗?
在初始化连接时,mod_spdy使用SSL握手和Next Protocol Negotiation (NPN)来通知客户端服务器支持SPDY。此外,要在已存在的HTTP代理上工作,SPDY需要通过SSL隧道传输数据流,这意味着目前你需要一个有效的SSL证书来使你的网站支持SPDY。
然而,无SSL的情况下也是可以在本地测试SPDY的。所以,你可以使用参数--use-spdy=no-ssl运行Chrome,这样就可以连接一个支持SPDY服务器而不使用SSL了。

SPDY可以帮助建立实时性Web应用程序吗?
值得注意的是,SPDY并没有为使用 WebSockets提供任何特别的好处。因此,从更高级别上看它们可能很像,都是完全独立的协议。它们的创建是为了不同的目的,甚至它们两个的内部帧算法都是不一样的。
另一方面,SPDY固有的异步流( asynchronous streams)将会帮助实现如 服务器发送事件(Server-Sent Event)之类的功能。

SPDY不是终极武器!
SPDY将会持续改进成为一个更加稳定的协议,并且以后会使HTTP协议更加成功。考虑到成本,除非你在运行一个负载较高的网站,否则添加SPDY支持不会有立竿见影的效果的。
所以,最好先考虑 一般的页面优化技术然后再考虑SPDY,如果你想去掉那些额外的延迟。
进一步阅读:
SPDY White paper SPDY Protocol Spec (draft 3) Life beyond HTTP 1.1: Google's SPDY by Ilya Grigorik
SPDY: It's Here! by Roberto Peon (Google I/O talk)

OsChina翻译/原文链接

Facebook宣布支持谷歌SPDY协议:欲取代HTTP编辑本段回目录

北京时间7月16日消息,Facebook工程师道格·比佛(Doug Beaver)上周宣布,该公司已经开始部署谷歌开发的SPDY协议。SPDY是“speedy”(迅速的)的缩写,目的是通过一种更快的网络内容传输协议取代HTTP.除了SPDY外,目前可用的第二代网络内容传输协议还包括HTTP Speed+Mobility和Network-Friendly HTTP Upgrade,但Facebook最终还是选择了 SPDY,并计划在全球部署。

SPDY最早由谷歌开发,除了可以加快浏览速度外,还可以面向所有网站推行SSL加密协议。其优势在于,可以通过单一网络连接传输多条数据流,而且能够为网页资源分配优先级,并压缩页眉信息。

  而由于Facebook是全球最受欢迎的网站,因此该公司的背书对SPDY而言是一大胜利。

uploads/201207/13425716695vxBlJR3.jpg

参考文献编辑本段回目录

http://zh.wikipedia.org/wiki/SPDY

→如果您认为本词条还有待完善,请 编辑词条

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。
0

标签: SPDY SPDY协议 谷歌SPDY协议

收藏到: Favorites  

同义词: 谷歌SPDY协议,SPDY协议

关于本词条的评论 (共0条)发表评论>>

对词条发表评论

评论长度最大为200个字符。