Fiddler 抓包工具 - 全网最全最细教程,没有之一

news2024/11/26 12:25:58

Fiddler 简介
Fiddler 是位于客户端和服务器端的 HTTP 代理

目前最常用的 http 抓包工具之一

功能非常强大,是 Web 调试的利器

监控浏览器所有的 HTTP/HTTPS 流量
查看、分析请求内容细节
伪造客户端请求和服务器响应
测试网站的性能解密 HTTPS 的 Web 会话
全局、局部断点功能
第三方插件
场景使用场景

接口调试、接口测试、线上环境调试、Web 性能分析
判断前后端 bug、开发环境 hosts 配置、mock、弱网断网测试

B/S 架构

编写程序部署到 Web 服务器

Web 服务器运行在服务器上,绑定 ip 地址并监听某端口,接收和处理 http 请求

客户端通过 http 协议获取服务器上的网页、文档等

工作原理

HTTP 

Hyper Text Transfer Protocol(超文本传输协议)

用于从万维网服务器传输超文本到本地浏览器的传送协议

HTTP 协议是基于 TCP 的应用层协议,它不关心数据传输的细节,主要是用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输 HTML 页面的内容。默认端口是 80

http 是基于请求与响应模式的、无状态的、应用层的协议

 

完整的 HTTP 协议

完整的 http 协议包含请求和响应两块内容

HTTP 请求报文

HTTP 请求报文主要由请求行、请求头部、空一行、请求正文(请求体)4 部分组成 

 如下是 fiddler 某个会话的请求报文

请求方法( Request Method)

请求方法

备注

GET

请求资源

POST

提交资源

Head

获取响应头

PUT

替换资源

DELETE

删除资源

OPTIONS

允许客户端查看服务器的性能

TRACE

回显服务器收到的请求,用于测试或诊断

URL

Uniform Resource Locator:统一资源定位符,用于描述网上的资源

格式:schema://host[:port#]/path/.../[?query-string]

scheme:协议,如 http,https,ftp 等

host:域名或者 IP 地址

port:端口

path:资源路径

query-string:发送的参数

请求头(Request Header)

请求头

描述

Host

主机 ip 地址或域名

User-Agent

客户端相关信息,如果操作系统、浏览器等信息

Accept

指定客户端接收信息类型,如:image/jpg,text/html,application/json

Accept-Charset

客户端接受的字符集,如 gb2312、iso-8859-1

Accept-Encoding

可接受的内容编码,如 gzip

Accept-Language

接受的语言,如 Accept-Language:zh-cn

Authorization

客户端提供给服务端,进行权限认证的信息

Cookie

携带的 cookie 信息

Referer

当前文档的 URL,即从哪个链接过来的

Content-Type

请求体内容类型,如 Content-Type:
application/x-www-form-urlencoded

Content-Length

数据长度

Cache-Control

缓存机制,如 Cache-Control:no-cache

Pragma

防止页面被缓存,和 Cache-Control:no-cache 作用一样
 

HTTP 响应报文

HTTP 响应报文主要由状态行、消息报头、空一行、响应正文 4 部分组成

如下是 fiddler 某个会话的响应报文

状态码(Status Code)

用以表示网页服务器 HTTP 响应状态的 3 位数字代码

状态码

描述

1XX

提示信息,请求被成功接收

2XX

成功,请求被成功处理 200

3XX

重定向相关 304

4XX

客户端错误 404

5XX

服务器端错误 500

响应头(Response Header)

响应头

描述

Server

HTTP 服务器的软件信息

Date

响应报文的时间

Expires

指定缓存过期时间

Set-Cookie

设置 Cookie

Last-Modified

资源最后修改时间

Content-Type

响应的类型和字符集,如:Content-Type: text/html; charset=utf-8

Content-Length

内容长度

Connection

如 Keep-Alive,表示保持 tcp 连接不关闭,不会永久保持连接,服务器可设置

Location

指明重定向的位置,新的 URL 地址,如 304 的情况
 

GET 请求
格式 http://host:port/path?xx=aa&yy=bb

如:

http://120.78.128.25:8080/futureloan/mvc/api/member/register?mobilephone=13555555528&pwd=123456

说明:

http/https:协议类型
host:服务器主机 ip 地址或域名
port:端口号,如果是 80 可以省略,其它端口必须指明
path:访问资源的路径
?:分隔符,用于区别 path 和参数
xx=aa、yy=bb:请求参数列表
&:多个参数的连接符号
总结
机会只垂青有准备的人,这是一个靠本事的社会。有时候,你之所以发展得不好,不是因为没有机遇,而是因为你没有准备好,导致机遇与你擦肩而过。如果你想要学习,什么时候开始都不晚,而不是瞻前顾后,你只要用尽全力,剩下的交给时间!
 

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

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

相关文章

Go语音基于zap的日志封装

zap日志封装 Zap是一个高性能、结构化日志库,专为Go语言设计。它由Uber开源,并且在Go社区中非常受欢迎。它的设计目标是提供一个简单易用、高效稳定、灵活可扩展的日志系统。 以下是Zap的一些主要特点: 1.高性能:Zap的性能非常出…

【Linux】权限的理解

🌇个人主页:平凡的小苏 📚学习格言:命运给你一个低的起点,是想看你精彩的翻盘,而不是让你自甘堕落,脚下的路虽然难走,但我还能走,比起向阳而生,我更想尝试逆风…

mysql exist和in的区别

一、演示用的表 为了演示二者的区别,先建立两张表 user 表和 order 表 二、in 的执行情况 in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,…

接口测试之Jenkins+Jmeter+Ant实现持续集成

安装Jenkins,见手把手教小白安装Jenkins_程序员馨馨的博客-CSDN博客 一)Linux机器上安装Jmeter 百度一下就好 二)Linux机器上安装Ant 1、下载安装包 进入Apache Ant - Binary Distributions,下载安装包,本次安装的是版…

高仿某东商城flutter版本,个人学习flutter项目

前言 高仿某东商城flutter版本,个人学习flutter项目 使用flutter_redux状态管理网络使用dio进行了简单的封装使用node项目mock服务端接口(mock_server目录)目前只实现了首页,其他功能持续更新… 同款Android Kotlin版本( https://github.co…

Mysql索引底层原理及其优化方案

1.深入理解Mysql索引底层数据结构与算法 1.1索引结构 索引及其数据结构: 二叉树红黑树Hash表B-Tree 1.1 二叉树 说明:二叉树是建立数据后,会和第一元素进行比对,当比较的元素小于第一个元素时,此时就会走第一个元素…

代码随想录算法训练营第四十三天 | 填满背包有几种方法、背包有两个维度

1049.最后一块石头的重量II 文档讲解:代码随想录 (programmercarl.com) 视频讲解:动态规划之背包问题,这个背包最多能装多少?LeetCode:1049.最后一块石头的重量II_哔哩哔哩_bilibili 状态:没想到。 思路 本…

chatgpt如何引入领域知识?mit团队利用gpt4做数据增强来提升小模型在特定领域的效果

一、概述 title:Dr. LLaMA: Improving Small Language Models in Domain-Specific QA via Generative Data Augmentation 论文地址:Paper page - Dr. LLaMA: Improving Small Language Models in Domain-Specific QA via Generative Data Augmentation…

(6)LED点阵屏

LED点阵屏由若干个独立的LED组成,LED以矩阵的形式排列,以灯珠亮灭来显示文字、图片、视频等。LED点阵屏广泛应用于各种公共场合,如汽车报站器、广告屏以及公告牌等 LED点阵屏分类 按颜色:单色、双色、全彩按像素:88、…

Excel模板导入导出功能测试点

近期接触的都是Web项目,有很多导入数据这个功能,导入的文件格式都是Excel,基本流程就是:下载一个Excel模板,填充数据,再将Excel表格导入,导入后可下载列表,想着这类功能的测试点基本…

springboot基于vue的地方美食分享网站

开发技术介绍 Java介绍 JavaScript是一种网络脚本语言,广泛运用于web应用开发,可以用来添加网页的格式动态效果,该语言不用进行预编译就直接运行,可以直接嵌入HTML语言中,写成js语言,便于结构的分离&…

DVWA全级别通关教程

首先选择难度,我们从low开始,如上图所示进行修改 目录 SQL手工注入 过程: low Medium high Impossible SQL 盲注 过程: SQL 工具注入 工具安装过程: 过程: low Medium High: 暴力破解 过…

教室借用-贪婪算法

问题1: 假设你有一个教室(只有一个教室),你有几个来自讲师的使用教室的请求 。应用间隔调度问题来安排尽可能多的请求,以优化教室的使用。 最早开始时间 最早开始时间(Earliest Start Time,简…

一站了解zookeeper的关键知识

ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。 ZooKeeper 的架构通过冗余服务实现高可用性。 Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高…

maven下载和maven配置(以maven3示例)

maven下载和maven配置(以maven3示例) 1.maven下载1.1 直接使用idea捆绑的(很轻松)1.2 手动下载到本机服务器(推荐)1.2.1 官网下载maven1.2.2 选好版本后,选二进制目录 binaries1.2.3 文件选择1.…

Jmeter的Content-Type设置方式

今天调Jmeter脚本遇到一个问题:接口的请求体为Body Data时,没有在HTTP信息头管理加Content-Type参数,Content-Type: application/json,导致脚本一直跑不通,报错,一顿排查,才发现是请求头的原因。…

SpringCloud项目将某个子模块改成以war的形式打包,需要修改的地方

SpringCloud项目将某个子模块改成以war的形式打包&#xff0c;需要修改的地方 在GAV后面添加 《packaging》 war 《/packaging》 在GAV后面添加 《packaging》 war 《/packaging》 添加war打包方式 <packaging>war</packaging>添加之后项目会报错&#xff0c;工程…

Ada学习(2)Statements

文章目录 if statements / expressionif statementsif expression Case Statement / ExpressionCase StatementCase Expression Loop Statement基本循环结构 loopwhile loopFor 循环NoteFor ... loop Control VariableFor ... loop Range EvaluationDeclare block (声明代码块)…

手把手教小白安装Jenkins

一、Jenkins简介 Jenkins是一个开源软件项目&#xff0c;是基于Java开发的一种持续集成工具&#xff0c;用于监控持续重复的工作&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使软件的持续集成变成可能。 简而言之&#xff0c;Jenkins就是一款将构建&#xff0c;打…

例3:模板

例&#xff1a;如图所示流程&#xff0c;乙烷和丙烷混合液进入蒸发器Evaporator&#xff0c;从天然气吸收热量后进入压缩机Compressor&#xff0c;压缩后的气体进入冷凝器Condenser&#xff0c;最后通过J-T阀&#xff08;焦耳-汤姆逊节流膨胀阀&#xff09;回到进入蒸发器前的状…