小草浅浅谈web(二)

blog: http://homeway.me/web

本文主要包含:http & web加速




Ox01.http 1.0/1.1

http网上讲的不少,不外乎就那几点。chrome

先看个http流程图:缓存

http流程

http 1.0, 一个请求开启一次TCP链接。服务器

http 1.0连接方式




http 1.1连接方式

详细的看这里吧: 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的效率高了许多:只需不多的链接,而且网络封包也能够更少更紧凑。google

当你打开一个TCP连接,发送请求包,将持续收到stream式数据。spa




SPDY 链接流




  • #### HTTP头内容压缩

SPDY容许压缩HTTP请求和响应头,所以能够(比传统HTTP)传输更少的包和数据.




SPDY 压缩




  • #### 服务器推送流(Server Push)

http 1.0时代,服务器只能被动接受,客户端主动请求,服务器只负责回馈数据。

SPDY在实验服务器经过声明X-Associated-Content头来推送内容。服务端经过这个头告知客户端须要推送资源。




SPDY 链接




  • 与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。




SPDY 兼容




Ox03.web速度

先看看你点击一个网站产生的数据流。




访问 web数据流




  • 网口转换

  • 数据形式转换

  • 光缆/电缆传输

  • ISP接入

  • 服务器解析

  • 客户端渲染

  • 还有一个重要的: DNS查询


一个web测试网站:http://www.webpagetest.org/

下面对醒来网站的测试:




http://xinglai.org/ 测试

从下面的测试能够看出,访问一个网站耗时的几个东西:

  • 下载一个很大的png

  • DNS查询

  • TCP流初始化时间




关于网络带宽与延迟的测试




网络带宽与延迟

从上面很容易看到,网络带宽不是最主要的问题,网络延迟才是主要问题。

查看你本地的DNS缓存:chrome://dns




本文连接,转载请注明来源。 http://homeway.me


-by 小草

2014-09-11 21:57:14

相关文章
相关标签/搜索