2. 从书上了解过HTTP的数据, 但没有检测过
使用wireshark, 从网络帧上了解数据包与上层HTTP数据. 会有一些新的, 有意思的事情被发现的
上面的图是访问www.google.com抓出的包. 还有其它包没有显示, 这里只分析GET / HTTP/1.1这个请求
GET /请求被分成三个帧:16, 18, 20. 这种帧在Info栏被称为"TCP segment of a reassembeld PDU". 第16, 18帧都带了1418bytes的, 如下:
看到图片最后: TCP segment data (1418 btyes )
重要: 如果分开去分析16, 18, 20这三个帧, 是很难出整体数据的全貌的.
当然, 要硬查看原始数据也是可以的:
上面就是frame16的data, 开始是HTTP头部数据. 如下是frame18的data:
frame18的data是二进制数据!, frame20也是二进制数据.
为什么? 因为HTTP包的数据部分可以是gzip数据!(下面分析HTTP头部时可以看出来)
如果分析这种被分开的数据包, 其中又包含有二进制数据块是很头大的. 还好, wireshark为大家化简了这种分析!
wireshark会在最后一个TCP包(这里为frame20)进行数据全貌整合, 这种整合只是对于GUI软件显示时出现的, 它并不会对其实数据包进行操作
上图就是frame20的具体情况, 917才是frame20的data部分, 但是还显示出了 Reassembled TCP segments ( 3753 bytes ), 这3753 bytes就是整合出来的
下面看一下整合出来的HTTP请求全貌:
* 图中蓝色的就是HTTP的gzip数据部分: 二进制数据! 其中Content-Encoding: gzip 就是为什么frame16, 18是二进制数据的原因.
wireshark中也提供了查看HTTP中gzip数据的功能, 在整合帧(frame20)的数据窗口最下面有几个功能:
第二个为整合的整体数据, 这时是有gzip数据的
第三个为解压gzip数据的HTTP情况
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.