1.1 HTTP协议分析利器——HttpWatchHttpFox
在实际部署的负载均衡的应用中,绝大多数都是对Web应用进行负载均衡,而Web应用的核心便是HTTP。因此,我们需要一个能够对HTTP协议进行详尽分析的利器。虽然在某种程度上,Wireshark也能够对HTTP协议进行解析和分析,但是,我想向大家推荐一款专门用于对HTTP协议进行分析的超级武器——HttpWatch和HttpFox。
HttpWatch可以与IE、Firefox进行集成,可以专门对HTTP/HTTPS协议进行分析。它能够帮助我们分析浏览器与Web服务器之间的交互细节。它不仅能够帮助我们进行HTTP问题的故障排错,还能够帮助我们优化Web网站的性能。但是,HttpWatch是一款商业软件,而且价格不菲,单用户授权需要$395。
HttpWatch安装完成后,会自动和系统内安装的IE、Firefox浏览器进行集成。需要注意的是,HttpWatch无法自动支持最新本的浏览器,如最新的Firefox5.0必须要HttpWatch 7.2以上的版本才能支持。
有关HttpWatch软件的详细信息,可以访问以下网站:
http://www.httpwatch.com
HttpFox可以看作是一个精简版的HttpWatch,它是Firefox的一个插件,具有HttpWatch的一些最常用的基本功能。

1)        HttpFox支持Firefox,如果需要分析对比不同浏览器处理某些行为的差别,HttpFox并不能帮到你。

2)        HttpFox是免费的。相较于HttpWatch高昂的价格,HttpFox的性价比是超高的。


负载均衡故障排错指南 (2)_第1张图片  

1.1.1 记录网页访问的过程和内容
HttpWatch会以插件的方式与IE、Firefox浏览器进行集成。我们以Firefox下HttpWatch的使用为例。点击Firefox浏览器下的 “工具->HttpWatch”启动HttpWatch,HttpWatch的捕获窗口会出现在浏览器的下方。点击上方标签栏的“Record”启动捕获程序。然后,你在浏览器中输入你想要捕获的网站域名,即开始进行HTTP请求的捕获。

负载均衡故障排错指南 (2)_第2张图片  
HttpWatch的捕获界面分为三个部分:
最上面为功能菜单,你可以进行启动捕获(Record),停止捕获(Stop)、清空当前捕获窗口(Clear),对捕获内容进行过滤(Filter)、查询(Find)、保存(Save)或打印(Print)等。
中间部分为HTTP请求列表,它显示HttpWatch记录的打开某个页面执行的所有HTTP请求列表。如:请求处理的时间、请求大小、响应大小、请求方式、请求结果代码、类型、URL等。
最下面为HTTP请求详细内容,通过选择不同的标签,你可以了解:HTTP头部信息详情、请求处理时间线、Cookie信息、响应内容等。
 
1.1.2 分析HTTP请求细节
在实际问题的调试过程中,我们可以通过HttpWatch获得很多有关HTTP请求细节的信息。

负载均衡故障排错指南 (2)_第3张图片  
以上图为例,我们可以得到以下信息:

1)        打开http://www.httpwatch.com/这个页面,一共花费了4.376秒的时间;

2)        有效的HTTP请求(Network Round Trips)共13个;

3)        发送请求共7725Bytes,接收请求共198294Bytes,由于启用了压缩,节省了43567Bytes的传输数据

4)        发起DNS查询5个,建立TCP连接6个

 
选择其中某个HTTP请求,我们再来看看这个请求的一些细节。

负载均衡故障排错指南 (2)_第4张图片  
如上图所示,显示了HTTP请求以及应答的细节,在HTTP请求中,说明了:客户端支持的HTTP协议版本、浏览器的类型、支持的压缩方式、请求的主机名、Cookie信息等。而HTTP的应答中说明了服务器类型、支持的HTTP版本、应答长度、是否可以缓存、缓存过期时间等。

此外,通过选择Time Chart标签,还可以查询这个请求处理过程中,各部分的时间。例如:这个请求的的发送和接受时间都很短,大部分的时间都花在等待应答的过程中。这也许说明在服务器的处理上可能有优化的可能性。


负载均衡故障排错指南 (2)_第5张图片
通过其它标签,我们还可以了解当前请求的Cookie信息、缓存信息、应答的具体内容等。

 

E.S.