转自:https://blog.csdn.net/txj236/article/details/38872855
在对系统监控的过程中,发现ClientConnected和ClientBeginRequest之间有超过10秒的间隔时间的情况发生。
例如:
ClientConnected: 09:50:31.066
ClientBeginRequest: 09:50:41.113
查了http://fiddler.wikidot.com/timers,看到了对这种现象的说明
- ClientConnected- Exact time that the client browser made a TCP/IP connection to Fiddler.
- ClientBeginRequest– Time at which this HTTP request began. May be much later than ClientConnected due to client connection reuse.
补充查了下资料:
1.很有可能是客户端的请求是通过重用的客户端socket来传输的;
2. ClientConnected是指从浏览器到Fiddler的socket连接时间
3. 计算准确的响应时间:ClientBeginRequest ~ ClientEndResponse
1. Fiddler作为系统代理,所有来自微软互联网服务(WinInet)的http请求都先经过Fiddler再到Web Server
Internet Explorer <--> WinInet <--> Fiddler <--> Web Server
2. Fiddler可以做性能测试,HTTP统计视图
3. 如果一个响应没有包含Cache-Control头,那么就不会被缓存在客户端
- ClientDoneRequest -浏览器完成将HTTP请求发送到Fiddler的时间。
- DNSTime - # milliseconds Fiddler spent in DNS looking up the server's IP address.
- GatewayDeterminationTime - # milliseconds Fiddler spent determining the upstream gateway proxy to use (e.g. processing autoproxy script). Mutually exclusive to DNSTime.
- TCPConnectTime - # milliseconds Fiddler与服务器建立TCP/IP连接的用时
- HTTPSHandshakeTime – Amount of time spent in HTTPS handshake
- ServerConnected – 与服务器建立连接的时间,由于服务器连接的重用,该时间可能比ClientConnected早。
- FiddlerBeginRequest – The time at which Fiddler began sending the HTTP request to the server.
- ServerGotRequest - Exact time that Fiddler finished (re)sending the HTTP request to the server.
- ServerBeginResponse - Exact time that Fiddler got the first bytes of the server's HTTP response.
- ServerDoneResponse - Exact time that Fiddler got the last bytes of the server's HTTP response.
- ClientBeginResponse - 开始向客户浏览器返回HTTP响应数据的时间.
- ClientDoneResponse- 完成向客户浏览器返回HTTP响应数据的时间.
服务器端处理及响应的时间:ServerBeginResponse - ServerGotRequest
网络传输耗时(上传):(ServerGotRequest - ClientDoneRequest) - (DNSTime + TCPConnectTime)
Fiddler的HTTP统计视图(可以优化请求和页面)
Fiddler的统计选项卡中显示了当前Session的基本信息,在选项卡的最上方显示的是文本信息,最下方是个饼图,按MIME类型显示流量。使用Statistics页签,用户可以通过选择多个会话来得来这几个会话的总的信息统计,比如多个请求和传输的字节数。
选择第一个请求和最后一个请求,可获得整个页面加载所消耗的总体时间。从条形图表中还可以分别出哪些请求耗时最多,从而对页面的访问进行访问速度优化。
如下所示:
饼图如下:
统计选项卡的一些信息含义如下解释:
Request Count: 选中的session数;
Unique Hosts: 流量流向的独立目标主机数。如果所有选中的流量都发送到相同的服务器上,则不会显示该字段。
Bytes sent: HTTP请求头和请求体中向外发送的字节总数。后面括号中分别给出了头和body各自的字节数。
Bytes received: HTTP请求头和请求体中接收到的所有字节数。在全部计数后面的括号中给出了请求头和请求体各自的字节数。
Requests started at: Fiddler接收到的第一个请求的第一个字节的时间点。
Responses completed at: Fiddler发送到客户端的最后一个响应的最后一个字节的时间点。
Sequence(clock) duration: 第一个请求开始到最后一个响应结束之间的 “时钟时间”。
Aggregate session duration: 所有选中的session从请求到响应之间的时间的和。
DNS Lookup time: 所有选中的session解析DNS所花费的时间的总和。
TCP/IP Connect duration: 所有选中session建立TCP/IP连接所花费的时间总和。
HTTPS Handshake duration: 所有选中session在HTTPS握手上所花费的时间总和。
Response Codes: 选中session中各个HTTP响应码的计数。
Response Bytes by content-type: 选中session中响应的各个Content-Type的字节数。
Estimated Performance: 选中的流量在不同语种(local)地区和连接方式下所需时间的初步估计。