一、实验目的
1、掌握 HTTP协议在Web应用中的工作机制;
2、理解 HTTP 请求报文构成及各字段含义;
3、理解 HTTP 响应报文构成及各字段含义;
4、通过实际案例,掌握Wireshark 中加载保存的报文文件。
二、实验环境
1、硬件:PC电脑一台,网络正常;
2、配置:Windows10系统,内存8G及以上,硬盘500G及以上
3、软件:
Wireshark(头歌平台:https://www.educoder.net/shixuns/m2ue5wv9/challenges)、浏览器
三、实验内容
根据本章所学知识,实现HTTP协议的工作机制,分为HTTP请求、HTTP响应。 HTTP 请求包括三部分,分别是请求行(请求方法)、请求头(消息报头)和请求正文。HTTP 响应代表服务器端向客户端回送的数据,它包括:一个状态行,若干个消息头,以及实体内容。
实验步骤:
1.HTTP请求
HTTP 请求包括三部分,分别是请求行(请求方法)、请求头(消息报头)和请求正文。HTTP 请求第三行为请求正文,请求正文是可选的,它最常出现在 post 请求方式中,get 请求无正文,所以回车之后为空。示例如下:
浏览器端通过 HTTP 协议发送给服务器的实体数据。get 请求时,通过 url 传给服务器的值 name=dylan&id=110。post 请求时,通过表单发送给服务器的值。也可以为空。
2.HTTP响应
一个 HTTP 响应代表服务器端向客户端回送的数据,它包括:一个状态行,若干个消息头,以及实体内容。示例如下:
响应包含浏览器能够解析的静态内容,例如:HTML,纯文本,图片等等信息。
3.Wireshark中加载保存的报文文件
利用抓包软件 Wireshark 进行抓包,过滤出 HTTP 协议报文。如下图:
查看报文内容:双击展开HTTP请求和响应报文的内容。如下图:
为了避免网络原因带来的问题,完成任务时也可以通过加载以前保存的报文文件。如下图所示,在 Wireshark 的菜单中,依次单击“文件”-“打开”,选中需要加载的文件后,单击“打开”按钮文件中的报文就可以加载到 Wireshark 中,同样可以筛选出"HTTP"报文。
4.操作要求
双击打开桌面上的工作区文件夹"wireshark",再打开实训文件夹"myshixun",并查询到的信息保存到文件message-1.txt。具体要求如下:
(1)打开 Wireshark,加载实训文件夹中的http-ethereal-trace-1文件,并筛选出其中的“HTTP”报文;
(2)选择列表窗口第一条 HTTP 分组,获取分组信息;
(3)展开该 HTTP 分组,查看浏览器运行 HTTP 的版本号,并填写到文件中;
(4)查看 Accept-Language ,查看服务器接受哪种语言,并填写到文件中;
(5)查看客户端的 IP 地址,并填写到文件中;
(6)查看服务器的 IP 地址,并填写到文件中;
(7)选择列表窗口第二条 HTTP 分组,从响应报文中,展开 HTTP 查找服务器返回的状态编码,填写到文件中;
(8)再从响应报文中,查找Content-Length,找到服务器返回的正文字节数,并填写到文件中;
四、实验过程截图
打开网页文件:
找到HTTP版本:
查看客户端与服务器的 IP 地址:
查看服务器接受的语言:
响应行包括 HTTP 版本HTTP/1.1,状态码200,以及消息OK:
在响应报文中继续查找Content-Length,找到服务器返回的正文字节数:
(在头哥里提交测评时,记得保存文件 “save”一下:)
五、实验作业
1、根据要求,完成实验指导里的操作流程。
2、实验结果分析和实验总结:
通过本次实验,我不仅对HTTP协议的理论及其工作机制有了系统的理解,还通过实际案例掌握了如何使用Wireshark进行深入分析,这对于今后更好地理解Web应用的运作、进行故障排除以及优化Web性能具有重要的意义。希望在未来的学习和工作中,能够继续探讨和实践HTTP协议的更多细节,提升网络应用开发及调试能力。
七、心得
在这次实验中能够了解HTTP协议在Web应用中的工作机制,以及HTTP请求报文和响应报文的构成及其各字段的含义,并通过实际案例掌握了如何使用Wireshark加载和保存报文文件。
HTTP(超文本传输协议)是Web应用中最基础和重要的协议之一,主要用在客户端和服务器之间的通信。一般而言,HTTP协议的工作机制可以分三个部分:请求和响应模式:客户端(如浏览器)通过HTTP请求向服务器发送数据,获取所需的资源,例如HTML页面、图片或其他文件。服务器处理请求后返回HTTP响应,其中包含了请求的结果以及所请求的资源。无状态性:HTTP协议是无状态的,这意味着每个请求都是独立的,服务器不保存以前请求的任何信息。这种设计简化了服务器的实现,但也给开发者带来了挑战,如维护用户会话。
连接管理:HTTP/1.1引入了持久连接,使得多个请求可以在单一的TCP连接上进行,从而减少连接建立和关闭的开销。
另外了解了HTTP请求报文构成及字段含义:一个典型的HTTP请求报文由四个部分组成:请求行格式为 METHOD /path HTTP/version,其中: METHOD表示请求的方法,如GET、POST、PUT、DELETE等,指示所需进行的操作。
Path为请求的资源路径,指向服务器上所需获取的资源。HTTP/version:HTTP协议版本,如本次实验中的HTTP/1.1。
第二个部分是请求头部:包含一系列字段,以键值对的形式提供客户端的信息和指示。其中Host是目标服务器的名称,指明请求的主机。User-Agent是发起请求的客户端软件的名称和版本。Accept是告知服务器可以接收的内容类型。
第三部分是空行,即请求头部与请求体之间用一个空行分隔,指示头部结束。
最后一个部分是请求体,是可选部分,通常用于POST或PUT请求,包含传送的数据,比如表单提交的数据。
另外搞懂了HTTP响应报文构成及字段含义;HTTP响应报文的构成与请求大致相似,主要包括四部分:一个是状态行——格式为 HTTP/version STATUS_CODE reason_phrase,其中HTTP/version表示响应使用的协议版本。STATUS_CODE代表三位数状态码,表示请求的结果,如200(成功)、404(未找到)、500(服务器错误),而reason_phrase则是状态码的文本描述,通常为简洁的说明。
第二部分是响应头部——这包含以键值对形式提供有关响应内容的信息,其中Content-Type表示响应内容的类型,如text/html或application/json。Content-Length表示响应体的字节长度。Set-Cookie则用于设置浏览器的Cookie。
第三部分是空行——响应头部以一个空行结束,表示响应头信息的终止。
第四个组成部分是响应体,包含请求的具体数据内容,如页面的HTML、图像文件等。
而实验中用到的Wireshark是一种强大的网络分析工具,能够捕获、显示和分析网络数据包