网站监测的明星指标
1.可用性
2.响应时间(8秒或4秒)
3.首屏响应时间
网站浏览过程简介
从输入url开始
1.解析域名获得服务器IP
浏览器本身是可以缓存dns域名解析的
查询系统界别的dns缓存
查询本机hosts记录
dns服务器发出递归查询请求
2.连接服务器
在获得最终服务器IP后,与该IP的网页服务端口(http的80)建立tcp连接
3.发送请求
成功连接上对应端口之后,浏览器开始发送http请求。
http请求包括请求方法,url和协议版本三个最基本的要素,以及种类繁多的各式http header。
一个http请求实例
GET /ga.js HTTP/1.1
Host:www.baidu.com
Host:www.baidu.com
文件位于虚拟主机名www.baidu.com下
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)
Accept: */*
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
本次请求响应完成后,所建立的连接继续保持,以便下次请求继续使用
Referer: http://stackoverflow.com/
本次请求是由http://stackoverflow.com/页面引入
If-Modified-Since: Mon, 31 Aug 2009 17:13:58 GMT
客户端本地已经有一个缓存的副本,其最后修改时间为 Mon, 31 Aug 2009 17:13:58 GMT
If-None-Match:“737060cd8c284d8af7ad3082”
客户端本地已经有一个缓存的副本,其Etag值为737060cd8c284d8af7ad3082
Cookie:PHPSESSIONID=123456789
客户端在之前的请求响应中,已经收到过服务器返回的set-cookie结果为PHPSESSIONID=123456789
X-Forwarded-For:129.78.138.66,129.78.64.103
客户端请求在到达服务器之前已经经过了failing服务器,IP为129.78.138.66,129.78.64.103
4.等待响应
动态页面的内容,需要服务器端进行数据库查询等复杂操作
静态内容,需要服务器进行磁盘寻到读取
代理服务器或挂在nfs文件系统需要消耗内部网络交互
第一字节响应时间或首保响应时间
5.传输响应内容
取决网络状况
6.浏览器渲染处理
浏览器接受完全部响应内容后开始在本地进行渲染
html文件,相当快速,dns解析并稍后开始建立连接
css/js文件,需要在浏览器上编译运行的
浏览器渲染是单线程的,css和js的执行都会阻塞整个页面的效果
7.并发请求
dns解析并稍后开始建立连接,建立连接在浏览器端是可以并发进行和控制的
http1.1 http1.0
IE6,7 2 4
IE8 6 6
firefox3 6 6
chrome3 4 4