blog: http://homeway.me/web
http网上讲的不少,不外乎就那几点。chrome
先看个http流程图:缓存
http 1.0, 一个请求开启一次TCP链接。服务器
详细的看这里吧: http://blog.csdn.net/forgotaboutgirl/article/details/6936982网络
http 2.0将可能引入 SPDY 协议。并发
SODY协议是由google基于TCP应用层协议,避开HTTP的短链接损耗,同时支持多路复用(利用多stream机制),使得服务端和客户端仅需一个TCP链接便可传输任意内容,大大节省服务器资源,提升网络利用率。同时易于部署,服务端客户端加上SPDY协议的解析便可,对于应用开发人员、应用用户而言不须要任何额外知识。测试
SPDY有几个新特性:网站
SPDY容许在单一TCP链接上并发无限个stream。因为请求能够在单一通道上交错,TCP的效率高了许多:只需不多的链接,而且网络封包也能够更少更紧凑。google
当你打开一个TCP连接,发送请求包,将持续收到stream式数据。spa
SPDY容许压缩HTTP请求和响应头,所以能够(比传统HTTP)传输更少的包和数据.
http 1.0时代,服务器只能被动接受,客户端主动请求,服务器只负责回馈数据。
SPDY在实验服务器经过声明X-Associated-Content头来推送内容。服务端经过这个头告知客户端须要推送资源。
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。
先看看你点击一个网站产生的数据流。
网口转换
数据形式转换
光缆/电缆传输
ISP接入
服务器解析
客户端渲染
还有一个重要的: DNS查询
一个web测试网站:http://www.webpagetest.org/
下面对醒来网站的测试:
从下面的测试能够看出,访问一个网站耗时的几个东西:
下载一个很大的png
DNS查询
TCP流初始化时间
关于网络带宽与延迟的测试
从上面很容易看到,网络带宽不是最主要的问题,网络延迟才是主要问题。
查看你本地的DNS缓存:chrome://dns
本文连接,转载请注明来源。 http://homeway.me
-by 小草
2014-09-11 21:57:14