blog: http://homeway.me/
本文主要包含:http & web加速
Ox01.http 1.0/1.1
http网上讲的很多,不外乎就那几点。
先看个http流程图:
http 1.0, 一个请求开启一次TCP连接。
详细的看这里吧: http://blog.csdn.net/forgotaboutgirl/article/details/6936982
Ox02.http 2.0
http 2.0将可能引入 SPDY 协议。
SODY协议是由google基于TCP应用层协议,避开HTTP的短连接损耗,同时支持多路复用(利用多stream机制),使得服务端和客户端仅需一个TCP连接即可传输任意内容,大大节省服务器资源,提高网络利用率。同时易于部署,服务端客户端加上SPDY协议的解析即可,对于应用开发人员、应用用户而言不需要任何额外知识。
SPDY有几个新特性:
- #### 多路stream
SPDY允许在单一TCP连接上并发无限个stream。由于请求可以在单一通道上交错,TCP的效率高了许多:只需很少的连接,并且网络封包也可以更少更紧凑。
当你打开一个TCP链接,发送请求包,将持续收到stream式数据。
- #### HTTP头内容压缩
SPDY允许压缩HTTP请求和响应头,因此可以(比传统HTTP)传输更少的包和数据.
- #### 服务器推送流(Server Push)
http 1.0时代,服务器只能被动接受,客户端主动请求,服务器只负责回馈数据。
SPDY在实验服务器通过声明X-Associated-Content头来推送内容。服务端通过这个头告知客户端需要推送资源。
- 与HTTP兼容
HTTP本身是单次请求+单次响应的结构,所以SPDY中使用带有FLAG_FIN的SYN_STREAM来兼容HTTP请求,而带有FLAG_FIN的SYN_REPLY来兼容HTTP响应。对于带有请求body(上传文件)的情况,这时在SYN_STREAM可以不包含FLAG_FIN标识,然后客户端将数据按数据帧的大小限制(最大2^31 – 1)进行拆分,跟随发送若干数据帧,在最后一个数据帧上带有FLAG_FIN即可。对于服务端响应中的大量内容(如HTML页面、JS、CSS等),同样采用类似方法,只在最后一个数据帧带上FLAG_FIN。
Ox03.web速度
先看看你点击一个网站产生的数据流。
网口转换
数据形式转换
光缆/电缆传输
ISP接入
服务器解析
客户端渲染
还有一个重要的: DNS查询
一个web测试网站:http://www.webpagetest.org/
下面对醒来网站的测试:
从下面的测试可以看出,访问一个网站耗时的几个东西:
下载一个很大的png
DNS查询
TCP流初始化时间
关于网络带宽与延迟的测试
从上面很容易看到,网络带宽不是最主要的问题,网络延迟才是主要问题。
查看你本地的DNS缓存:chrome://dns
本文链接,转载请注明来源。 http://homeway.me
-by 小草
2014-09-11 21:57:14
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。