wireshark抓包分析HTTP协议,HTTP协议执行流程,

news2024/11/13 20:30:26

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:对网络安全感兴趣的小伙伴可以关注专栏《网络安全入门到精通》

使用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. 第一个包是「第一次握手」:我(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:响应状态码的提示信息

再看下面的这些响应头:

在这里插入图片描述

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

第五步:查看HTTP追踪流

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1365723.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

超自动化助力企业财务转型升级

在快节奏的财务规划与分析环境中,传统的预算方法虽长期以来一直是企业制定有效决策的支柱,但已不足以驾驭当今复杂的商业环境。不断的经济变化、市场的不确定性以及利益相关者的需求增加促使企业寻求更敏捷的解决方案。如今,部分企业开始尝试…

关键字、标志符、变量、基本数据类型

1、关键字 1.1、定义 定义:被JAVA语言赋予了特殊含义,用作专门用途的字符串(或单词) 特点:全部关键字都是小写字母 上源码: 代码中定义类的关键字class,定义一个订单控制器类 ​​​​​​​…

try catch 应该在 for 循环里面还是外面

正文 首先 , 话说在前头, 没有什么 在里面 好 和在外面好 或者 不好的 一说。 本篇文章内容: 使用场景 性能分析 个人看法 1. 使用场景 为什么要把 使用场景 摆在第一个 ? 因为本身try catch 放在 for循环 外面 和里面 …

7N65-ASEMI高压NPN型MOS管7N65

编辑:ll 7N65-ASEMI高压NPN型MOS管7N65 型号:7N65 品牌:ASEMI 连续漏极电流(Id):4A 漏源电压(Vdss):650V 栅极阈值电压:30V 单脉冲雪崩能量:150mJ 集电极电流(脉冲&#xff…

【分布式微服务专题】SpringSecurity快速入门

目录 前言阅读对象阅读导航前置知识笔记正文一、Spring Security介绍1.1 什么是Spring Security1.2 它是干什么的1.3 Spring Security和Shiro比较 二、快速开始2.1 用户认证2.1.1 设置用户名2.1.1.1 基于application.yml配置文件2.1.1.2 基于Java Config配置方式 2.1.2 设置加密…

初识Linux shell

Linux初探 Linux系统可以划分为4个部分: Linux内核:Linux系统的核心,控制着系统的所有硬件和软件,在必要时分配硬件,并根据需要执行软件。 内核主要功能: 系统内存管理:内核通过硬件上称为交换…

Proxifier下载安装

一、下载地址 官网: https://www.proxifier.com/ 下载链接 https://www.proxifier.com/distr/ProxifierSetup.exe 因为这个跳转直接下载的,我放沙箱里试了一下 二、安装 安装就是同意协议,选择安装位置,因为是正版,他…

U-ViT【All are Worth Words: A ViT Backbone for Diffusion Models】

Motivation Diffusion中常用的Backbone是UNet,使用 resnet 和 transformer 交替进行的,这样内存memory存储 其实也是不断shuffle变化的,resnet 以 feature 看 memory,而 transformer 以 token 看memory。如果可以统一memory的计算…

Simpy简介:python仿真模拟库-02/5

一、说明 关于python下的仿真库,本篇为第二部分,是更进一步的物理模型讲解,由于这部分内容强依赖于第一部分的符号介绍,因此,有以下建议: 此文为第二部分,若看第一部分。建议查看本系列的第一部…

盲盒小程序搭建,功能优势分析

盲盒作为一种潮玩商品,吸引了大量的年轻人,受众群体非常高,在市场上的发展快速。盲盒拥有独特的优势,给消费者提供了新奇的购物体验,能够让人们在购物中体验到盲盒的不确定性所带来的惊喜感和快乐。 盲盒小程序的出现…

Echarts——使用graphic组件在一个option内同时设置两个饼图的背景图

使用echarts的graphic原生图形元素组件&#xff0c;为两个饼图设置对应背景。 <template><div id"app"><div class"charts" ref"charts"></div></div> </template><script> import * as echarts from…

计算机毕业设计 | SpringBoot+vue农产品商城 买菜购物网站(附源码)

1&#xff0c;绪论 1.1 项目背景 随着社会发展&#xff0c;网上购物已经成为我们日常生活的一部分。但是&#xff0c;至今为止大部分电商平台都是从人们日常生活出发&#xff0c;出售都是一些日常用品比如&#xff1a;食物、服装等等&#xff0c;并未发现一个专注于菜品的电商…

GEC6818传感器模块(烟雾+GY39+RFID)——使用文字取模的方式实现数据显示

GEC6818传感器模块(烟雾GY39RFID)——使用文字取模的方式实现数据显示 完整的工程大家可以在我的gitee上进行下载 下载地址&#xff1a;GEC6818智能语音家居系统 文章目录 GEC6818传感器模块(烟雾GY39RFID)——使用文字取模的方式实现数据显示一、 文字取模实现数据显示1. disp…

NPS 内网穿透安装

NPS 内网穿透安装 NPS分为服务端和客户端&#xff0c;对应的不同操作系统软件可以在GitHub RELEASES自行选择下载。 服务端搭建 由于个人非企业级使用&#xff0c;为了方便直接使用docker安装 1.docker运行 (注意需要提前下载conf文件&#xff0c;或者将镜像中文件copy出来…

多线程模板应用实现(实践学习笔记)

出处&#xff1a;B站码出名企路 个人笔记&#xff1a;因为是跟着b站的教学视频以及文档初步学习&#xff0c;可能存在诸多的理解有误&#xff0c;对大家仅供借鉴&#xff0c;参考&#xff0c;然后是B站up阳哥的视频&#xff0c;我是跟着他学。大家有兴趣的可以到b站搜索。加油…

C/C++ 联合体

目录 联合体概述 联合体的内存分配 联合体大小计算 联合体概述 联合与结构非常的相似&#xff0c;主要区别就在于联合这两个字。 联合的特征&#xff1a;联合体所包含的成员变量使用的是同一块空间。 联合体定义 //联合类型的声明 union Un {char c;int i; }; //联合变量…

isaacgym(legged_gym)学习 (二)—— 设置环境地形

isaacgym(legged_gym)学习 &#xff08;二&#xff09;—— 设置环境地形 文章目录 isaacgym(legged_gym)学习 &#xff08;二&#xff09;—— 设置环境地形前言一、了解isaacgym中地形如何构成的二、自定义修改1.代码2.查看script/play.py 总结 前言 如何设置isaacgym中的环…

【操作系统篇】正在持续写入的日志如何清理?

正在持续写入的日志如何清理? ✔️典型解析✔️ 推荐的日志管理工具✔️如何设置日志轮转工具✔️如何选择适合我的Logrote-NG日志轮转工具✔️如何测试Logrote-NG工具的稳定性✔️分析一个简单的ELK报警✔️这个报警的作用是什么✔️报警机制的优缺点✔️如何减少报警机制的误…

蓝牙运动耳机哪款好用?运动用什么耳机比较好?2024运动耳机推荐

​在众多的耳机类型中&#xff0c;运动耳机因其独特的设计和功能而备受青睐。它们不仅要具备出色的音质&#xff0c;还需要能够适应激烈的运动环境&#xff0c;如防水、防汗、牢固耐用等。今天&#xff0c;我想向大家推荐一些在这些方面表现出色的运动耳机&#xff0c;这些耳机…

Unity 圆角 线段 绘制 LineRender

需求 绘制圆角 核心函数 /// <summary>/// 点ABC 形成的角度必须为90 点c为中间的点/// </summary>/// <param name"a"></param>/// <param name"b"></param>/// <param name"c"></param>/// &…