2024年最全wireshark抓包分析HTTP协议,HTTP协议执行流程,_wireshark http

第二步:过滤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:响应状态码的提示信息

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 20
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Wireshark是一款网络抓包工具,可以用来分析网络数据包。下面是Wireshark抓包分析HTTP协议的步骤: 1. 打开Wireshark软件,选择需要抓包的网络接口,点击“开始”按钮开始抓包。 2. 在浏览器中访问一个网站,例如www.baidu.com。 3. 停止抓包,可以看到Wireshark捕获到了很多数据包。 4. 在过滤器中输入“http”,可以过滤出HTTP协议的数据包。 5. 选中一个HTTP数据包,可以在下方的详细信息中查看HTTP协议的各个字段,例如请求头、响应头、请求体、响应体等。 6. 可以通过Wireshark的统计功能,查看HTTP协议的各种统计信息,例如请求数量、响应时间、数据流量等。 下面是一个示例HTTP数据包的详细信息: ```http Frame 1: 1514 bytes on wire (12112 bits), 1514 bytes captured (12112 bits) Ethernet II, Src: IntelCor_36:9d:7f (00:25:90:36:9d:7f), Dst: Cisco_0c:20:00 (00:0c:20:00:00:00) Internet Protocol Version 4, Src: 192.168.1.100, Dst: 202.108.22.5 Transmission Control Protocol, Src Port: 50360, Dst Port: 80, Seq: 1, Ack: 1, Len: 1460 Hypertext Transfer Protocol GET / HTTP/1.1\r\n Host: www.baidu.com\r\n Connection: keep-alive\r\n Cache-Control: max-age=0\r\n Upgrade-Insecure-Requests: 1\r\n User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299\r\n Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8\r\n Accept-Encoding: gzip, deflate\r\n Accept-Language: en-US,en;q=0.9\r\n \r\n ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值