天天看点

抓包分析Http301重定向流程 抓包分析Http301重定向流程

先用sniffer打开trace,查看相关数据包,如下图:

<a href="http://blog.51cto.com/attachment/201205/145255378.png" target="_blank"></a>

前两个为DNS查询及响应,客户端获取到服务器IP,进行了TCP三次握手(第3-5个数据包)。第6个包为http get,通过sniffer解码如下图:

<a href="http://blog.51cto.com/attachment/201205/145317448.png" target="_blank"></a>

第7个包为TCP的确认,第8、9个包的出现属于乱序(判定原因后面会解释)。

第10个包,为服务器端的响应,如下图:

<a href="http://blog.51cto.com/attachment/201205/145343994.png" target="_blank"></a>

注意上面黄色标出的3个字段。

响应的状态码为301,并进行了此代码的含义:永久移除,即此域名已经不存在了。

Connection字段与get包此字段进行对比:

Connection: Keep-Alive,Connection: close,这也是http1.1与1.0的一个主要区别,1.1支持在一个TCP会话中进行多次应用请求,而1.0默认只支持1个。

第12、14为客户端对重定向域名的解析

<a href="http://blog.51cto.com/attachment/201205/145359925.png" target="_blank"></a>

接下来客户端又进行了新的TCP连接,并发起对新域名的get请求,如下图第19个包:

<a href="http://blog.51cto.com/attachment/201205/145416994.png" target="_blank"></a>

接下来服务器进行了成功的响应,http 200,如下图:

<a href="http://blog.51cto.com/attachment/201205/145434111.png" target="_blank"></a>

另外需要指出的是,sniffer给出了针对这个响应结果,后续数据的传送序列,这个序列可以帮助分析人员很直观的定位丢包,及分析重传情况。这个序列也是sniffer独有,其他分析产品没有提供的,如下图:

<a href="http://blog.51cto.com/attachment/201205/145452320.png" target="_blank"></a>

后续数据共分为21个包进行传输,黄色部分标出了这些数据包在整个trace文件中的位置。

这样在后续的每个数据包中都会体现其在整个会话中的位置,如下图:

<a href="http://blog.51cto.com/attachment/201205/145506840.png" target="_blank"></a>

另由于IP网络是尽力转发,并不能保证在传输过程中各个数据包的到达顺序。所以会出现一些先发出的数据而后到的情况,如下图:

<a href="http://blog.51cto.com/attachment/201205/145539462.png" target="_blank"></a>

2012.5.14

<a href="http://down.51cto.com/data/2360569" target="_blank">附件:http://down.51cto.com/data/2360569</a>

本文转自 此号无效1 51CTO博客,原文链接:http://blog.51cto.com/test2016/862930

继续阅读