抓包分析Http301重定向流程
环境描述
客户端访问www.espn.com,由于此域名已不存在,相关网站信息转到www.espn.go.com。相关trace文件,见附件。
分析过程
先用sniffer打开trace,查看相关数据包,如下图:
前两个为DNS查询及响应,客户端获取到服务器IP,进行了TCP三次握手(第3-5个数据包)。第6个包为http get,通过sniffer解码如下图:
请求类型为GET,版本为http 1.1,URI为www.espn.com。
第7个包为TCP的确认,第8、9个包的出现属于乱序(判定原因后面会解释)。
第10个包,为服务器端的响应,如下图:
注意上面黄色标出的3个字段。
响应的状态码为301,并进行了此代码的含义:永久移除,即此域名已经不存在了。
Connection字段与get包此字段进行对比:
Connection: Keep-Alive,Connection: close,这也是http1.1与1.0的一个主要区别,1.1支持在一个TCP会话中进行多次应用请求,而1.0默认只支持1个。
第3个黄色标出部分,显示了重定向的URL,http://espn.go.com。
第12、14为客户端对重定向域名的解析
接下来客户端又进行了新的TCP连接,并发起对新域名的get请求,如下图第19个包:
接下来服务器进行了成功的响应,http 200,如下图:
另外需要指出的是,sniffer给出了针对这个响应结果,后续数据的传送序列,这个序列可以帮助分析人员很直观的定位丢包,及分析重传情况。这个序列也是sniffer独有,其他分析产品没有提供的,如下图:
后续数据共分为21个包进行传输,黄色部分标出了这些数据包在整个trace文件中的位置。
这样在后续的每个数据包中都会体现其在整个会话中的位置,如下图:
另由于IP网络是尽力转发,并不能保证在传输过程中各个数据包的到达顺序。所以会出现一些先发出的数据而后到的情况,如下图:
2012.5.14
附件:http://down.51cto.com/data/2360569
本文转自 此号无效1 51CTO博客,原文链接:http://blog.51cto.com/test2016/862930