当下我们如何能部署上 SPDY 呢? 左边是普通 HTTPS 加载,右边是 SPDY 加载。是不是很神奇? SPDY 是什么 ? (SPDY 是 Speedy 的昵音,意思是更快) SPDY 与 HTTP 的关系 SPDY 协议只是在性能上对 HTTP 做了很大的优化,其核心思想是尽量减少连接个数,而对于 HTTP 的语义并没有做太大的修改 SPDY 协议的优点 1. 多路复用 请求优化 SPDY 规定在一个 SPDY 连接内可以有无限个并行请求,即允许多个并发 HTTP 请求共用一个 TCP会话。 ( Nginx 也表示将支持 SPDY) 如何部署 SPDY? 像之前所说的那样,SPDY 是运行在 HTTPS 上,非 HTTPS 流量并不会受到 mod_spdy 影响。 SPDY 部署要求: 1.
所幸的是,2012年,Google推出了基于TCP的应用层协议SPDY(取 speedy 谐音,意谓更快)。 (4)HTTP头标记 每一个SPDY端点会持续跟踪每一个在之前的请求中已经发送的HTTP报文头部,从而避免重复发送还未改变的头部。 (5)消息推送 SPDY的网页服务器还可以主动推送内容。 目前主流的浏览器(比如:Chrome、Firefox、Opera、IE)和WEB服务器(比如:Apache、Nginx)都支持SPDY。
好不容易等到SPDY进入了nginx的ubuntu官方包,Chrome和Firefox开始不支持SPDY/2协议,必须升级到SPDY/3以上版本。 我就奇怪明明之前SPDY用得好好的,怎么突然就失效了。 到头来还是得用第三方的开发版本源,现在更新到1.5.13,支持SPDY/3.1。
虽然SPDY当前还并不是一个标准协议,但是GoogleChrome,Chromium,Mozilla Firefox,Opera,IE11均已支持SPDY协议.SPDY可以缩短网页的加载时间,让你们网页更快的展现在用户面前 ,仅从这个方面来说,就有部署SPDY的必要. 支持,就会提示启用SPDY需要ngx_http_spdy_module模块. 如何检查是否已经支持SPDY? 使用下面的这个网站: http://localhost 或者先打开你的网站,然后查看Chrome: chrome://net-internals/#spdy 查看SPDY sessions里是否有你的网站地址
安装最新版Nginx来支持SPDY 安装新版Nginx的过程看老文章。 12月10日的时候,整个站点就已经装上了Nginx 1.4,配置文件里面已经可以开启SPDY功能,不过那时候一直缺少一枚SSL证书。
安装spdy nginx从1.5开始是支持spdy格式的。 http://nginx.org/en/docs/http/ngx_http_spdy_module.html#example 最新的nginx当然也支持,是spdy3。 编译的时候直接增加参数: –with-http_spdy_module ,即可。 spdy配置 如果安装成功了spdy,直接修改nginx配置即可 server { listen 443 ssl spdy; ssl_certificate server.crt; 使用chrome,打开 chrome://net-internals/#spdy,就可以看到spdy。
9、使用SPDY加快你的网站速度 ---- 2012年google如一声惊雷提出了SPDY的方案,大家才开始从正面看待和解决老版本HTTP协议本身的问题,SPDY可以说是综合了HTTPS和HTTP两者有点于一体的传输协议 SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。 SPDY构成图: ? SPDY位于HTTP之下,TCP和SSL之上,这样可以轻松兼容老版本的HTTP协议(将HTTP1.x的内容封装成一种新的frame格式),同时可以使用已有的SSL功能。 HTTP2.0可以说是SPDY的升级版(其实原本也是基于SPDY设计的),但是,HTTP2.0 跟 SPDY 仍有不同的地方,主要是以下两点: HTTP2.0 支持明文 HTTP 传输,而 SPDY 强制使用 服务端推送(server push),同SPDY一样,HTTP2.0也具有server push功能。
SPDY:革新网络协议 SPDY(发音为“speedy”)是Google在2009年开发的一种开放网络协议,目标是通过解决HTTP协议的一些问题来优化Web性能。 SPDY协议通过实现多路复用、优先级、头部压缩和服务器推送等功能,提高了网页加载速度,同时也减少了延迟。通过这些方法,SPDY大幅提高了用户在网页浏览和在线应用中的体验。 SPDY和HTTP/2的关系 HTTP/2,正如其名字所暗示的,是HTTP协议的下一个主要版本。HTTP/2的核心目标之一是提高Web性能,这与SPDY的目标非常相似。 通过Google的SPDY实验,HTTP/2可以在其设计阶段验证并采用了许多有效的性能改进措施。所以,我们可以说HTTP/2在很大程度上就是SPDY的进化版。 结语 SPDY是Google为了改进网络性能而发明的一项重要技术。尽管SPDY已被HTTP/2取代,但它在HTTP/2的设计和开发过程中起到了关键的作用。
netty提供了一个ApplicationProtocolNames类,在其中定义了各自对应的协议,其中ALPN对应了http2和http1.1,而sydy对应了spdy/1,spdy/2,spdy/3 * {@code "spdy/3"}: SPDY version 3 */ public static final String SPDY_3 = "spdy/3"; /** * {@code "spdy/2"}: SPDY version 2 */ public static final String SPDY_2 = "spdy/2"; /** * {@code "spdy/1"}: SPDY version 1 */ public static final String SPDY_1 = "spdy/1"; /1,spdy/2,spdy/3等。
netty提供了一个ApplicationProtocolNames类,在其中定义了各自对应的协议,其中ALPN对应了http2和http1.1,而sydy对应了spdy/1,spdy/2,spdy/3 * {@code "spdy/3"}: SPDY version 3 */ public static final String SPDY_3 = "spdy/3"; /** * {@code "spdy/2"}: SPDY version 2 */ public static final String SPDY_2 = "spdy/2"; /** * {@code "spdy/1"}: SPDY version 1 */ public static final String SPDY_1 = "spdy/1"; /1,spdy/2,spdy/3等。
/mods-available/ssl.* . 3、安装mod_spdy 到https://developers.google.com/speed/spdy/mod_spdy/下载,我是64bit的,选择 mod_spdy 64-bit .deb (Debian/Ubuntu) 下载后, sudo dpkg -i mod-spdy-beta_current_amd64.deb 4、重启apache sudo service apache2 restart 5、验证 用chrome以https协议随便访问一个网页,并打开Network监控台,如果SPDY生效,则会在Headers里看到x-mod-spdy。 在chrome地址栏输入chrome://net-internals/#spdy 会看到: 注:Debian、Ubuntu的配置方法应该和Linux Mint一样。SPDY是建立在SSL之上。 apache2.4不能安装mod-spdy
Apache搭建的SPDY服务器(Linux Mint + Apache2.2搭建SSL/HTTPS/SPDY服务器 http://www.linuxidc.com/Linux/2014-03/98122 .htm)很不爽,因为Apache只能用2.2版本,SPDY也只支持到3,不支持3.1。 /zlib-1.2.8 --with-http_spdy_module sudo make install 然后打开/usr/local/nginx/conf/nginx.conf 搜索HTTPS server ,把下面的行全部取消注释,并为listen参数加上spdy,SSL证书可以填Apache的,或者自己创建。 # HTTPS server # server { listen 443 ssl spdy; server_name localhost;
俗话说,好刀配好鞘,好马配好鞍,当域名收敛配合 SPDY 才能最大程度发挥他们的效用,达到事半功倍。 那么什么是 SPDY? SPDY,一种开放的网络传输协议,由Google开发,用来发送网页内容。 多路复用 请求优化 SPDY 规定在一个 SPDY 连接内可以有无限个并行请求,即允许多个并发 HTTP 请求共用一个 TCP会话。 SPDY 兼容性 Google Chrome 和 Chromium 已经支持 SPDY。 Mozilla Firefox 自11.0开始内嵌支持 SPDY 。 从 Firefox 13 开始默认开启对 SPDY 的支持。 Opera 从12.10开始支持 SPDY。 Internet Explorer 11 开始支持 SPDY。 从上面可以看到,IE 从 IE11 开始才支持 SPDY,所以 SPDY 发展的路还很长,现阶段运用在移动端较好。
当时的概念叫做 SPDY,时至今日,虽然人们对于Google的动机始终不是很清楚,但是毫无疑问SPDY还没有发现对手。 这周,这种情况也许会发生变化。 包括了多路复用多个组件(像SPDY)和一个全时加密的会话层(类似SPDY,但是不依赖于SSL或TLS)。 对于Google的SPDY提议,除了因为使用SSL而造成了的TLS部分大量的修改外,基本上没有太多争议。 SPDY在提醒人们注意Web的性能方面以及提升HTTP速度方面的努力令人尊敬,目前主要的问题在于如何使SPDY满足移动设备和应用的需求。”。 2、SPDY 3、WebSocket 百度百科 4、认识HTML5的WebSocket
使用SPDY加快你的网站速度 2012年google如一声惊雷提出了SPDY的方案,大家才开始从正面看待和解决老版本HTTP协议本身的问题,SPDY可以说是综合了HTTPS和HTTP两者有点于一体的传输协议 SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。 SPDY构成图: ? SPDY位于HTTP之下,TCP和SSL之上,这样可以轻松兼容老版本的HTTP协议(将HTTP1.x的内容封装成一种新的frame格式),同时可以使用已有的SSL功能。 HTTP2 HTTP2.0可以说是SPDY的升级版(其实原本也是基于SPDY设计的),但是,HTTP2.0 跟 SPDY 仍有不同的地方,主要是以下两点 ● HTTP2.0 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS ● HTTP2.0 消息头的压缩算法采用 HPACK,而非 SPDY 采用的 DEFLATE http2 新特性 ● 新的二进制格式(Binary Format),HTTP1
另外更详述的区别可以见: CDN xx DS 那SPDY又是个什么东西呢? SPDY指南 SPDY可以说是DS杀手. SPDY 的作用就是,在不增加域名的情况下,解除最大连接数的限制. 没错,可以说SPDY 就是 HTTP2的前身. SPDY是google主导的一种新型通信方式.主要的特点就是多路复用. 他的目的就是致力于取消max connections 上限. 但,据chromium统计,使用了SPDY网页速率 差不多提升了28%~64%左右. 所以,说SPDY的出现,可以让DS的存在变的毫无价值. 那SPDY具体的优势在哪里. 但在SPDY里,所有的文本数据默认都会被压缩. SPDY目前的兼容性是IE11+.(所以说还是任重而道远) 开启SPDY 那如何开启SPDY呢? 很简单,使用nginx的用户,可以下载一个ngx_http_spdy_module的模块. 使用apache的用户,可以下载一个mod_spdy module的模块.
二、SPDY SPDY的主要目的是减少50%以上的页面加载时间,但是呢不增加部署的复杂性,不影响客户端和服务端的Web应用,只需要浏览器和Web服务器支持SPDY。 四、SPDY和WebSocket的关系 SPDY和WebSocket的关系比较复杂。 补充关系,二者侧重点不同。 承载关系,试想,如果SPDY的标准化早于WebSocket,WebSocket完全可以侧重于API,利用SPDY的帧机制和多路复用机制实现该API。 Google提出草案,说WebSocket可以跑在SPDY之上。WebSocket的连接建立在SPDY的流之上,将WebSocket的帧映射到SPDY的帧上。 HTTP SM的设计原则包括: 保留HTTP的语义,这一点和SPDY一致,但也正应如此,抛弃了SPDY里的ServerPush。
服务端推送 (server push) 同SPDY一样,HTTP2.0也具有server push功能。 目前,有大多数网站已经启用HTTP2.0,例如 YouTuBe,淘宝网等网站,可以利用chrome控制台可以查看是否启用H2 SPDY 2012年google如一声惊雷提出了SPDY的方案,大家才开始从正面看待和解决老版本 HTTP协议本身的问题,SPDY可以说是综合了HTTPS和HTTP两者优点于一体的传输协议,主要解决: 降低延迟 针对HTTP高延迟的问题,SPDY优雅的采取了多路复用(multiplexing)。 SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。 SPDY与HTTP2的区别 头部压缩算法,SPDY,通用的deflate算法[注1];HTTP2,专门为压缩头部设计的HPACK算法 SPDY必须在TLS上运行,HTTP2可在TCP上直接使用,因为增加了
五、SPDY:HTTP1.x的优化 2012年google如一声惊雷提出了SPDY的方案,优化了HTTP1.X的请求延迟,解决了HTTP1.X的安全性,具体如下: 降低延迟,针对HTTP高延迟的问题,SPDY SPDY允许给每个request设置优先级,这样重要的请求就会优先得到响应。 SPDY构成图: ? SPDY位于HTTP之下,TCP和SSL之上,这样可以轻松兼容老版本的HTTP协议(将HTTP1.x的内容封装成一种新的frame格式),同时可以使用已有的SSL功能。 七、HTTP2.0:SPDY的升级版 HTTP2.0可以说是SPDY的升级版(其实原本也是基于SPDY设计的),但是,HTTP2.0 跟 SPDY 仍有不同的地方,如下: HTTP2.0和SPDY的区别 : HTTP2.0 支持明文 HTTP 传输,而 SPDY 强制使用 HTTPS HTTP2.0 消息头的压缩算法采用 HPACK ,而非 SPDY 采用的 DEFLATE 八、HTTP2.0和HTTP1
使用SPDY协议是我们优化的第一步,SPDY(speedy)是Google很早就提出的协议,通过多路复用、请求优先级以及HTTP报头压缩,来提升页面的访问速度。 但是公司貌似没有一个统一的平台支持SPDY,在寻求了TEG小伙伴的帮助之后,他们首次支持了SPDY。 SPDY在iOS的兼容性比较好,iOS 8.0以上的safari和webview都支持,覆盖了Qzone 85%以上的iOS用户。所以决定开启HTTPS+SPDY试试效果。 开启SPDY之后的页面访问速度提升了370ms,已经非常不错了。 (在SPDY的兼容性上,iOS大部分都支持了,而安卓tbs内核支持SPDY的版本也正在灰度当中,全量之后预计也能覆盖80%的Qzone用户。)