实验二:HTTP协议探索和分析
【实验目的】
1、熟悉HTTP协议的请求和响应格式;
2、掌握分析HTTP协议数据流的方法。
【实验步骤与结果记录】
要求:根据实验指导书中的实验内容和步骤,认真完成实验。采取截图、拍照等形式记录自己的实验步骤和结果。(可根据需要加页)
步骤1:从主机上启动浏览器访问 郑州大学 ,同时利用Wireshark软件抓包,保存抓包结果并分析。
1.启动Linux系统,打开系统自带的firefox浏览器,为后面抓包做准备。
2.开启终端或者使用快捷栏中的启动方式打开Wireshark软件,选择ens33接口并启动抓包。
(centos7及以后版本为ens33接口,6及早期版本为eth0接口)
3.在浏览器中打开郑州大学 网站,等待网页完全显示后关闭浏览器。
4.在Wireshark中停止抓包,保存抓包数据,以便后面进行分析。
步骤 2:从抓包结果中,过滤出浏览器和Web服务器之间的通信,分析HTTP协议的请求和响应格式。
1.在Wireshark的显示过滤器中输入http.host==www.zzu.edu.cn并点击Apply按钮,即可使Wireshark仅显示HTTP报文协议中包含首部行host=www.zzu.edu.cn 的报文,从中可分析出服务器www.zzu.edu.cn 的IP地址。
如下图所示,即可得到IP地址。
2.在Wireshark的显示过滤器中输入ip.addr==202.196.64.48,使Wireshark显示Web服务器参与的所有通信数据。
3.任意选择一个HTTP报文,点击Analyze菜单,然后点击Follow TCP Stream子菜单,跟踪TCP流,选择其中任意一对HTTP请求和响应,分析HTTP请求和响应的格式。
然后从中任选一对请求与响应分析即可。
步骤3:从抓包结果中,分析cookie的格式,理解cookie的作用。
1.在Wireshark的显示过滤器输入http.set_cookie ,获取 set-cookie。
2. 在Wireshark的显示过滤器输入http.cookie ,获取cookie。
3. 在Wireshark的显示过滤器输入http.set_cookie or http.cookie ,获取全部cookie,然后进行分析cookie的格式和作用。
【问题与分析】
1.从你的抓包结果中分析出的www.zzu.edu.cn的IP地址是什么?截图说明你的分析过程。
通过Wireshark过滤HTTP报文协议中包含首部Host˖www.zzu.edu.cn 的报文,从中可分析出服务器www.zzu.edu.cn 的IP地址是202.196.64.48。
2.在步骤2中,从你的抓包结果中,选出任意一对HTTP请求和响应,分析截获的数据,截图说明分析过程并填写表2.1和表2.2。
如截图所示,图中第一行即为请求办法,URL,以及版本。
如截图所示,图中红框表示范围即为首部行,抽取填写即可。
表2.1 HTTP请求中的数据 | |
请求方法: | GET |
URL: | /template_files/1/img/icon_logo2.svg |
版本: | HTTP/1.1 |
是否采用持续连接: | keep-alive |
从本HTTP请求中,任选5个首部行,将其首部字段名和值填入以下5行中 | |
Host | www.zzu.edu.cn |
User-Agent | Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/115.0 |
Accept | image/webp |
Accept-Language | zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 |
Referer | http://www.zzu.edu.cn/template_files/1/css/style.css |
如图所示,即为版本,状态码,以及短语。
如上图所示,即为HTTP响应的首部行。
表2.2 HTTP响应中的数据 | |
版本: | HTTP/1.1 |
状态码: | 200 |
短语: | OK |
从本HTTP响应中,任选5个首部行,将其首部字段名和值填入以下5行中 | |
Date | Tue, 16 Apr 2024 13:17:57 GMT |
X-Frame-Options | SAMEORIGIN |
Accept-Ranges | bytes |
Keep-Alive | timeout=5 |
Content-Type | image/svg+xml |
3.在步骤3中,你一共截获了几个包含set-cookie首部行和cookie首部行的数据帧?其中,包含几个cookie?。这几个cookie的内容字段的值是什么?截图说明你的分析过程。
如图所示,共有8个包含set-cookie首部行和cookie首部行的数据帧,其中包含1个set-cookie和7个cookie
1.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
2.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
3.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
4.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
5.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
6.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
7.Cookie: JSESSIONID=5F91A83D43D4665C8162607F9F9FF927\r\n
此图为第一个cookie,其它的不为展示。
4.【选做】分析你截获的HTTP数据,浏览器与web服务器之间建立了几条TCP连接?为什么这样做?
网页资源未加载完全就关闭了,大概有十几条TCP连接。采取多条TCP连接是为了实现多线程工作,有利于提高效率,缓解堵塞问题。