网站HTTP请求过程解析

网站性能优化中首要的一条就是要减少HTTP请求,那么为要减少HTTP请求呢?其实有些HTTP分析工具可以帮我们了解当浏览器请求一个资源时大致需要经历的哪些过程:

1 域名解析(DNS Lookup):
    这个没什么好说的就是把域名解析到指定IP地址的服务器所需要的时间。

2 创建连接(connection):
    创建一个Tcp 连接到服务器或代理服务器所需要的时间,如使用的是https链接这个时间还包括SSH握手过程。通常在HTTP头中使用keep-alive 连接以避免重复连接到web 服务器的开销。

3 发送请求(Send):
    发送HTTP请求消息到服务器所需的时间,所需时间取决于发送到服务器数据量的大小,一般包括 http头信息、post信息(post请求)、get数据(get请求) 、cookie等。 典型的如上传文件时发送数据的时间会比较长。

4 等待响应(Wait):
    请求发送到服务器后等待服务器响应的时间,一般是数据在服务端的处理计算时间和网络的延迟所需的时间。

5 接收数据(Receive)
    服务端响应内容传输到客户端所需要的时间,此值将取决于返回的内容的大小、网络带宽以及是否使用HTTP压缩。

6 页面内容加载
    收到服务传输的数据后,浏览器会加载收到的内容,内容越多加载的时间也会相应变长。

总结   

当然浏览器的实际处理过程比上面所描述的要复杂的多,浏览器还会做些其他的工作,比如检查缓存是否可用什么的。想要说的这其中的每个过程都是需要时间开销 的。了解了这些后我们也就可以理解yslow中哪些跟减少http请求相关的优化规则了。比如"是启用gzip"就是要降低数据接收时间;"减少 cookie"就是要降低发送请求时间等等。

上一篇:Android样式的开发:Style篇


下一篇:javascript单例模式的理解