LOGO OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 开发文档 其他文档  
 
网站管理员

3 分钟看懂 Wireshark 抓包!HTTP 协议执行流程拆解,小白也能秒入门

admin
2025年12月31日 22:45 本文热度 318

使用WireShark工具抓取「HTTP协议」的数据包,分析HTTP协议「执行流程」,分析HTTP请求响应「报文」中各个字段的作用。

      • • 第一步:访问百度
      • • 第二步:过滤HTTP协议的数据包
      • • 第三步:分析HTTP协议执行流程
      • • 第四步:分析HTTP协议报文
      • • 第五步:查看HTTP追踪流

第一步:访问百度

1)打开wireshark开启「抓包」,在cmd中执行 curl -I baidu.com,也就是访问百度,触发HTTP协议。

2)ping baidu.com 拿到百度的IP地址

第二步:过滤HTTP协议的数据包

1)「显示过滤器」输入 ip.addr == 39.156.66.10,过滤我和百度之间的数据包

第三步:分析HTTP协议执行流程

HTTP是简单的「请求-响应协议」,「建立TCP链接」后,客户端向服务端发送「请求」,服务端根据请求做出「响应」,然后「关闭TCP链接」。

1)先看前三个包,HTTP是基于TCP的,需要先通过「三次握手」建立连接

  1. 1. 第一个包是「第一次握手」:我(192.168.2.121)向百度(39.156.66.10)发送一个 SYN ,表示这是一个「建立连接的请求」
  2. 2. 第二个包是「第二次握手」:百度(39.156.66.10)响应我(192.168.2.121)一个 SYN+ACK ,表示这是一个「接受连接的应答」
  3. 3. 第三个包是「第三次握手」,我(192.168.2.121)向百度(39.156.66.10)发送一个 ACK ,表示这一个「确认请求」
  4. 4. 发送完确认请求后,我开启到百度的「单向连接通道」;百度收到我的确认请求后,就开启到我这边的单向连接通道;「两边通道」都开启以后,就可以通信了。

2)再看中间三个包,TCP连接建立以后,开始「HTTP的请求和响应」

  1. 1. 第一个包是,我(192.168.2.121)向百度(39.156.66.10)发送了一个「HTTP请求」,请求类型是HEAD
  2. 2. 第三个包是,百度(39.156.66.10)向我(192.168.2.121)发送了一个「HTTP响应」,响应状态码是 200 OK

3)再看最后四个包,请求响应结束后,「TCP四次挥手」断开连接。

  1. 1. 第一个包是第一次挥手,我(192.168.2.121)向百度(39.156.66.10)发送一个FIN+ACK,表示这是一个释放连接的请求
  2. 2. 第二个包是第二次挥手,百度(39.156.66.10)向我(192.168.2.121)响应一个ACK,表示这是一个确认请求;我收到后,就会释放我到百度的单向连接
  3. 3. 第三个包是第三次挥手,百度(39.156.66.10)向我(192.168.2.121)发送一个FIN+ACK,表示这是一个释放连接的请求
  4. 4. 第四个包是第四次挥手,我(192.168.2.121)向百度(39.156.66.10)响应一个ACK,表示这是一个确认请求;百度收到后,就会释放到我这边的单向连接
  5. 5. 双向的连接都释放后,TCP连接就关闭了,此次通信结束

第四步:分析HTTP协议报文

HTTP协议请求、响应报文如下图:

  • • 请求报文分为三个部分:请求行、请求头、请求体
  • • 响应报文分为四个部分:状态行、响应头、响应空行、响应体

1)先来看HTTP请求包,找到HyperText Transfer Protocol这一栏,就是HTTP的报文了


主要看我圈中的地方,上面是请求行,中间是请求头

  • • 请求行:包含请求方法、请求URL、HTTP版本
  • • 请求头:包含请求的客户端的信息,一行一个请求头
  • • 请求体:POST等类型的请求才有请求体,这里没有

点开请求行,看里面的三个字段:

  • • Request Method:请求方法,这里的请求方法是HEAD,用来获取报文首部
  • • Request URI:请求的URL,因为我们没指定,所以默认是/
  • • Request Version:请求的版本,因为用的是HTTP协议,所以这里显示HTTP协议的版本

再看下面的几个请求头:

  • • Host:目标主机
  • • User-Agent:代理,也就是浏览器的类型。我们用的不是浏览器,所以这里显示的是命令curl
  • • Accept:浏览器可接受的MIME类型

2)再看HTTP响应包,找到HyperText Transfer Protocol这一栏,也就是HTTP的报文



注意看我圈中的地方,上面是状态行,下面是响应头。

  • • 状态行:包含版本和响应状态码、状态信息
  • • 响应头:包含响应的服务器的资源信息,一行一个响应头
  • • 响应空行:用来间隔/区分响应头和响应体
  • • 响应体:服务器响应的内容,通常是一个HTML页面的代码或者给客户端的数据。

响应报文跟我们命令执行的返回结果其实是一样的。因为请求方式是 HEAD,只是获取头部信息,所有这里没有响应体,但能明显看到最后多了一行空格,也就是响应空行。

点开状态行,可以看到里面有三个字段:

  • • Response Version:响应版本,因为使用的是HTTP协议,所以这里显示了HTTP的版本
  • • Status Code:响应状态码,这里的 200 表示请求成功。
  • • Response Phrase:响应状态码的提示信息

再看下面的这些响应头:

  • • Date:服务端发送响应报文的时间
  • • Server:服务器和相对应的版本
  • • Last-Modified:请求的对象创建或者最后修改的时间
  • • ETag:对象的标志值,如果对象修改了,这个值也会变,用来判断对象是否改变
  • • Accept-Ranges:支持的范围单位
  • • Content-Length:内容长度
  • • Cache-Control:缓存控制
  • • Expires:这个时间前,可以直接访问缓存副本
  • • Connection:连接类型,Keep-Alive表示这是一个长链接,可以继续用这个连接通信
  • • Content-Type:资源文件类型

第五步:查看HTTP追踪流

选中HTTP协议的数据包 - 右键 - 【追踪流】-【HTTP追踪流】可以看到请求跟响应的报文

或者使用快捷键 ctrl + alt + shift + h


阅读原文:原文链接


该文章在 2026/1/4 16:27:40 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved