在计算机中安装抓包工具可以捕获网卡发出和接收到的数据包,
当然也能捕获应用程序通信的数据包。这样就可以直观地看到客户端
和服务器端的交互过程,客户端发送了哪些请求,服务器端返回了哪
些响应,这就是应用层协议的工作过程。
常用的抓包工具Ethereal有两个版本,在W?ndows XP操作系统和
W?ndows Server 2003网络操作系统上使用的Ethereal抓包工具,在
W?ndows 7和W?ndows 10操作系统上使用的W?reshark(Ethereal的升级
版)抓包工具。以下操作是在安装了W?ndows 10操作系统的计算机上
使用W?reshark抓包工具捕获访问搜狗网站的数据包。
先运行W?reshark抓包工具。选择用于抓包的网卡,笔者的计算机
是无线上网,单击“WLAN”选项,再单击左上角的 按钮,开始抓
包,如图1-10所示。
访问河北师范大学官方网站,在搜索文本框中输入搜索的内容,
最好是字符和数字,单击 按钮,如图1-11所示。
在命令提示符处输入“p?ng www.hebtu.edu.cn”,可以解析出该网站
的IP地址,如图1-12所示。
在显示过滤器处输入“http and ?p.addr == 202.206.100.34”,单击
按钮应用显示过滤器,只显示访问河北师范大学官方网站的HTTP
请求和响应的数据包,如图1-13所示。选中第1396个数据包,可以看
到该数据包中的HTTP请求报文,可以参照上一小节HTTP请求报文的
格式进行对照,请求方法是GET。
第1440个数据包是Web服务响应的数据包,状态码为404。状态码
404代表Not Found(找不到)。
图1-14所示的第11626个数据包是HTTP响应报文,状态码为200,
表示成功处理了请求,一般情况下都是返回此状态码。可以看到响应
报文的格式,可以参照上一小节HTTP响应报文的格式进行对照。
HTTP除了定?客户端使用GET方法请求网页,还定?了其他方
法,如通过浏览器向Web服务器提交内容;又如登录网站、搜索网站
需要使用POST方法。搜索刚才在搜索文本框中输入的内容,在显示过
滤器处输入“http.request.method == POST”,单击 按钮应用显示过
滤器。可以看到第19390个数据包,客户端使用POST方法将搜索的内
容提交给Web服务器,如图1-15所示。
在显示过滤器处输入“http.request.method == POST”,单击 按
钮,应用显示过滤器,如图1-16所示,右击其中一个数据包,单击“追
踪流”→“TCP流”。
图1-16 追踪TCP流
这样即可将访问河北师范大学官方网站所有的客户端请求和服务
器端响应的交互过程都集中在一起显示。可以在查找文本框中输入查
找内容,定位内容所在的位置,如图1-17所示。