wireshark抓包分析HTTP协议,HTTP协议执行流程,_wireshark 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. 第一个包是「第一次握手」:我(192.168.2.121)向百度(39.156.66.10)发送一个 SYN ,表示这是一个「建立连接的请求」
  2. 第二个包是「第二次握手」:百度(39.156.66.10)响应我(192.168.2.121)一个 SYN+ACK ,表示这是一个「接受连接的应答」
  3. 第三个包是「第三次握手」,我(192.168.2.121)向百度(39.156.66.10)发送一个 ACK ,表示这一个「确认请求」
  4. 发送完确认请求后,我开启到百度的「单向连接通道」;百度收到我的确认请求后,就开启到我这边的单向连接通道;「两边通道」都开启以后,就可以通信了。

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

在这里插入图片描述

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

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

在这里插入图片描述

  1. 第一个包是第一次挥手,我(192.168.2.121)向百度(39.156.66.10)发送一个FIN+ACK,表示这是一个释放连接的请求
  2. 第二个包是第二次挥手,百度(39.156.66.10)向我(192.168.2.121)响应一个ACK,表示这是一个确认请求;我收到后,就会释放我到百度的单向连接
  3. 第三个包是第三次挥手,百度(39.156.66.10)向我(192.168.2.121)发送一个FIN+ACK,表示这是一个释放连接的请求
  4. 第四个包是第四次挥手,我(192.168.2.121)向百度(39.156.66.10)响应一个ACK,表示这是一个确认请求;百度收到后,就会释放到我这边的单向连接
  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:响应状态码的提示信息

再看下面的这些响应头:

在这里插入图片描述

最后

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数网络安全工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。

img

img

img

img

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上网络安全知识点!真正的体系化!

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

知识点!真正的体系化!**

如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

<think>好的,我现在需要帮助用户学习如何使用Wireshark进行HTTP协议抓包分析。首先,我得回忆一下Wireshark的基本操作步骤,确保自己对这些流程正确无误。用户可能对网络协议分析不太熟悉,所以需要从安装开始,逐步引导,但用户的问题直接问的是如何使用,可能已经安装了,不过还是简要提一下安装步骤比较稳妥。 接下来,抓包前的准备工作很重要。比如选择正确的网卡,设置捕获过滤器。用户可能不知道如何选择正确的网络接口,这里需要解释如何查看活动接口,比如通过流量波动判断。设置过滤器是为了避免捕获过多不相关的数据,HTTP通常使用80或443端口,但过滤器用port 80可能不够,因为有些HTTP可能在其他端口,或者用户可能想抓取HTTPS,不过HTTPS是加密的,可能需要其他配置,但用户的问题是关于HTTP的,所以暂时不提HTTPS的细节。 然后是启动捕获,这部分比较简单,但需要说明如何操作按钮。接着,执行HTTP操作,比如访问网页,这样生成流量。停止捕获后,如何查看数据包。 分析部分需要详细说明。使用显示过滤器http,这样可以筛选出HTTP协议的数据包。用户可能需要了解如何输入过滤器,这里要具体说明。然后解释数据包列表的各列信息,比如时间、源地址、目标地址、协议、长度等。点击单个数据包查看详细信息,这里要强调分层结构,比如物理层、数据链路层、IP层、TCP、HTTP,这样用户能理解协议栈的结构。 关键字段分析,比如请求方法、URL、状态码、User-Agent等,这些是HTTP分析的重点。举例说明GET和POST的区别,状态码200、404等的含义。导出对象功能可能对用户有用,可以教他们如何导出传输的文件。 最后,保存结果,方便后续分析。生成的相关问题需要考虑用户可能的后续疑问,比如HTTPS的抓取、过滤技巧、流量分析、安全分析等,这样能帮助用户深入学习。 需要检查是否有遗漏的步骤,比如安装后的启动、权限问题(在Linux下可能需要sudo),但用户可能使用Windows,所以可能不需要特别提权限,但如果有时间的话可以简单提及。另外,确保所有步骤符合Wireshark的最新版本,但界面变化不大。最后,保持回答结构清晰,分步骤说明,语言简洁,避免使用专业术语过多,必要时举例说明,比如过滤器语法。</think>### 使用Wireshark分析HTTP协议抓包的分步指南 #### 1. 准备工作 - **安装Wireshark** 官网下载对应操作系统的安装包[^1],安装时需勾选`WinPcap/Npcap`驱动 - **选择网卡** 启动后选择正在使用的网络接口(如Wi-Fi或以太网卡),通过流量波动识别活动接口 - **设置捕获过滤器** 在捕获选项输入:`tcp port 80`(仅抓取HTTP流量)[^2] #### 2. 开始捕获 ```bash # 启动捕获后立即执行的测试命令(可选) curl http://example.com ``` 点击左上角鲨鱼鳍图标开始抓包,进行需要分析HTTP操作(如访问网页) #### 3. 数据筛选 - **显示过滤器** 在过滤栏输入:`http`(仅显示HTTP协议数据包) - **追踪TCP流** 右键数据包 → 追踪 → TCP流,可查看完整会话内容 #### 4. 关键字段解析 | 协议层 | 关键信息 | 示例值 | |--------|----------|--------| | HTTP | Request Method | `GET /index.html HTTP/1.1` | | | Status Code | `200 OK` | | TCP | 源端口/目的端口 | `54281 → 80` | | IP | 源地址/目的地址 | `192.168.1.100 → 93.184.216.34` | #### 5. 高级分析技巧 1. **统计功能** 点击菜单:统计 → HTTP请求/负载分布 2. **时间排序** 添加`Time since previous frame`列,分析请求间隔 3. **文件提取** 文件 → 导出对象 → HTTP,可恢复传输的图片/文档
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值