当下我们如何能部署上 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 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。
安装最新版Nginx来支持SPDY 安装新版Nginx的过程看老文章。 12月10日的时候,整个站点就已经装上了Nginx 1.4,配置文件里面已经可以开启SPDY功能,不过那时候一直缺少一枚SSL证书。
虽然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里是否有你的网站地址
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
当时的概念叫做 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
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的主要目的是减少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。
俗话说,好刀配好鞘,好马配好鞍,当域名收敛配合 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 发展的路还很长,现阶段运用在移动端较好。
另外更详述的区别可以见: 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的模块.
基于 HTTP 的功能追加协议.png 基于 HTTP 的功能追加协议 消除HTTP 瓶颈的 SPDY 其开发目标旨在解决 HTTP 的性能瓶颈,缩短 Web 页面的加载时间(50%) 一条连接上只可发送一个请求 SPDY 没有完全改写 HTTP 协议,而是在 TCP/IP 的应用层与运输层之间通过新加会话层的形式运作 考虑到安全性问题, SPDY 规定通信中使用 SSL 多路复用流 通过单一的 TCP 连接,可以无限制处理多个 HTTP 请求 赋予请求优先级 SPDY 不仅可以无限制地并发处理请求,还可以给请求逐个分配优先级顺序 压缩 HTTP 首部 压缩 HTTP 请求和响应的首部 推送功能 支持服务器主动向客户端推送数据的功能 服务器提示功能 服务器可以主动提示客户端请求所需的资源 SPDY 的确是一种可有效消除 HTTP 瓶颈的技术,但很多 Web 网站存在的问题并非仅仅是由 HTTP 瓶颈所 导致 使用浏览器进行全双工通信的
五、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
服务端推送 (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上直接使用,因为增加了