HTTP协议格式以及Fiddler用法
目录
今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天
一、HTTP协议的基本格式
二、Fiddler的用法
1.Fidder的下载
2.Fidder的使用
今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天

一、HTTP协议的基本格式
先来介绍一下http协议:
http 协议(全称为 "超文本传输协议"))是应用层最广泛使用的协议之一.
浏览器获取到网页就是基于http.
HTTP 就是浏览器和服务器之间交互的桥梁.
HTTP协议诞生于1991年,目前已经发展为最主流使用的一种应用层协议:

这里介绍HTTP/1.1 版本.
HTTP往往是基于传输层的TCP协议实现的.
接下来介绍HTTP协议的格式:

HTTP请求可以分成四个部分:
1.首行
2.请求报头(header)
3.空行
4.正文(body)
HTTP响应也可以分成四个部分:
1.首行
2.响应报头(header)
3.空行
4.正文(body)
HTTP请求:
1.首行:
包含三个部分,每个部分之间使用空格进行区分:

GET: HTTP的方法(method)

URL(俗称网址)
HTTP/1.1 版本号
method(方法)描述了这次请求的语义:想做什么.
实际开发中,最常见的两个方法:GET POST
触发GET请求:
1)在浏览器地址栏中直接输入URL
2)html 里的link script img a...
3)通过Js来构造get
第一行是首行,剩下的都是header(请求报头)部分.
触发POST请求:
1)登录
2)上传文件
如果是GET请求,没有body 如果是POST请求,一般有body.
POST请求的body内容中存放的数据和格式都是程序员自主定义的.
(面试题)GET 和 POST 之间的典型区别
本质上并没有什么区别,只是使用习惯上有区别:
1)就传递消息而言:
GET 也可以给服务器传递一些信息,GET传递的信息一般都放在query string.
POST 传递消息则是通过body
2)语义上的差别(使用场景)
GET 请求 一般是用于从服务器获取数据.
POST请求一般是用于给服务器提交数据.
3)GET 通常会被设计成幂等的,POST 不要求幂等
幂等:相同的输入,得到的结果是确定的.
4)GET 可以被缓存的,POST 则一般不能被缓存.
把请求的结果保存下来,下次请求的时候,就不必真请求了,直接取缓存结果.
URL:唯一资源定位符.
标识了互联网上的唯一资源的位置(资源在哪个服务器的哪个目录下的哪个文件)
URL基本格式:
协议方案名: http 或者 https
登录信息:现在已经不使用了.
服务器网址:域名.
服务器端口号:描述的是哪个程序.
带层次的文件路径:找到程序管辖下的文件.
查询字符串:获取资源的时候带的参数.
片段标识符:现在也不考虑.
URL最关键的四个部分:
1.域名/IP
2.端口号
3.带层次的文件路径
4.查询字符串
一个URL的这几个部分,有些是可以省略的:
例如: https://www.baidu.com/
省略端口:此时浏览器会提供默认端口.对于http来说,默认端口是80,对于https,默认端口443.
com后面的 / 也是路径,没省略,只是有点短,代表HTTP服务器的"根目录".
查询字符串(query string)以 ? 开头
以键值对的方式组织
键值对之间使用 &,
键和值之间使用 = 分割
URL有些字符是有特定含义的,就需要对内容进行重新编码,如果不编码直接写成中文,浏览器可能就无法正确识别了.
2.Header(请求报头)部分
请求报头部分都是一堆键值对,每一行是一个键值对,键和值之间使用:分割.
这些键值对都是HTTP事先定义好的,有特定的含义.
介绍一些重要的Header属性:
HOST
大概描述了服务器所在的地址和端口
Host 这里的地址和端口,用来描述最终要访问的目标.
这个内容大概率和URL中是一样的,也有一定的情况下是不同的.
Content-Length
表示body中的数据长度
Content-Type
表示请求的body中的数据格式
如果是GET请求,没body,请求中没有上述两个字段.
如果是POST请求,有body,必须要有上述两个字段.
User-Agent(简称UA)
描述了浏览器和操作系统的版本.
现在主要用于区分PC端和移动端.
Referer
当前页面的来源.
如果直接通过地址栏输入地址,直接点击收藏夹,都是没有referer
Cookie
非常重要的header 属性
本质上是 浏览器 给网页提供的 本地存储数据 的机制.
为了保证安全,默认是不允许网页访问计算机硬盘的.
Cookie 就是浏览器对于访问硬盘做出了明确的限制.
Cookie 就是通过键值对的方式来组织数据的.
网页就可以把一部分键值对放在Cookie中,以便于后面使用.
Cookie 中的具体存的内容都是程序猿自定义的.
通过下面的步骤可以观察到Cookie中的内容:
Cookie 中的数据来自于服务器.
服务器会通过HTTP响应的报头部分(Set-Cookie 字段),将返回的数据放到Cookie里面.
服务器来决定,浏览器的Cookie要存什么
Cookie 可以认为是存在于浏览器中,存在于硬盘的.
Cookie 在存的时候,是按照 浏览器 + 域名 的维度来进行细分的.
不同的浏览器,各自存各自的Cookie,
同一个浏览器不同的域名,对应不同的Cookie
Cookie 里面的内容不光是键值对,同时还有过期时间,比如:
有很多网站,登陆一次之后,自动记录登录状态.
Cookie 要回到服务器这里.
客户端同一时刻有很多个.
客户端这边就会通过Cookie来保存当前用户使用中间状态,客户端访问浏览器的时候,就会自动的把Cookie 的内容代入到请求中.然后服务器就能够知道现在客户端是啥样子了.
Cookie 里存在的往往是”上下文”这样的状态.
当浏览器保存好Cookie 之后,后续再给服务器发送请求的时候,就会自动带上这样的cookie.
Cookie 就像是服务器在浏览器这边建立的"寄存处"一样.
HTTP响应:
1.首行
也包含三个部分,每个部分之间使空格分开.![]()
HTTP/1.1 版本号
200: 状态码
OK: 状态码描述
HTTP 状态码描述了这次响应的结果(成功或者失败以及失败原因等...)
这么多的状态码是可以分成上述五大类:
2** 一般表示成功.
3** 一般表示重定向.
4** 一般表示客户端错误
5** 一般表示服务器错误
介绍几个常见的状态码:
200 ok 成功了
301 永久重定向
302 临时重定向
403 访问被拒绝(没有权限)
404 访问的资源不存在,在服务器上没找到.
500 服务器内部错误(服务器代码抛出异常了)
504 响应时间太久,浏览器等不及了.
理解重定向:
假设申请一个域名为: /hello 使用一段时间以后,要更换为:/hello2,当换完域名以后,配置重定向,如果有人访问之前的域名,就可以跳转到新的域名.
重定向这样的响应报文中,会在header里有个Location 属性,通过这个属性来描述要跳转到哪个新的地址.(重定向方便进行网站迁移)
二、Fiddler的用法
http 协议的交互详细过程可以借助第三方的工具来看到的,这个工具称为"抓包"工具.Fiddler就是其中之一.
1.Fidder的下载
在浏览器中直接搜索Fiddler,然后选择如图:
然后里面内容随便填好以后,点击下载即可.
下载好安装以后,就可以开始使用Fiddler.
2.Fidder的使用
打开Fiddler以后,左侧就会立刻显示出当前电脑上某个程序使用http和服务器交互的过程.
Fiddler 本质上是一个代理程序,使用的时候有两个注意事项:
1)Fiddler 使用的时候,可能会和别的代理程序冲突,使用的使用要关闭其他的代理程序.
如图所示:
2)开启HTTPS功能才能正确抓包.
https协议是基于http协议的安全版协议.
当下互联网上绝大部分的服务器都是https的,fiddler 默认不能抓https的包,需要手动启动https并且安装证书才能抓https的包.
勾选上面4个复选框,fiddler 才能抓取https. 首次勾选的时候,会弹出一个对话框,是一些英文,意思是:你是否要安装对应的证书. 一定要选择:是!!!
小技巧:ctrl+A 选中左侧请求列表中的所有选项,然后ctrl+X 可以全部删除.
观察左侧抓到的包:
蓝色的说明这是个html页面.这是我们最关注的,其它的请求都是基于这个请求产生.
绿色的是js
黑色的是一些返回数据.
双击左侧的请求列表中的选项,查看到请求的详细情况.
http 请求是有一定格式的,fiddler 会按照格式解析,呈现出不同的显示效果, 选择Raw查看最初的效果.
选择右下角的 View in Notepad 在记事本中打开.
观察抓包结果,可以看到,当前http请求是一个行文本格式的数据,相比于二进制的数据,用户可以更方便的直接观察.
观察响应(下图).
在记事本中打开:
会发现记事本出现乱码.这是因为,响应数据本来也是行文本数据,但是有的服务器会对响应进行压缩,变成二进制的数据了,如果想要观察到行文书数据,点击:
然后,再次在记事本中打开.
会看到没有乱码了.
以上就是Fiddler的基本用法了.
相关文章:
HTTP协议格式以及Fiddler用法
目录 今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天 一、HTTP协议的基本格式 二、Fiddler的用法 1.Fidder的下载 2.Fidder的使用 今日良言:焦虑和恐惧改变不了明天,唯一能做的就是把握今天 一、HTTP协议的基本格式 先来介绍一下http协议: http 协议(全称为 &q…...
自动写代码?别闹了!
大家好,我是良许。 这几天,GitHub 上有个很火的插件在抖音刷屏了——Copilot。 这个神器有啥用呢?简单来讲,它就是一款由人工智能打造的编程辅助工具。 我们来看看它有啥用。 首先就是代码补全功能,你只要给出函数…...
项目心得--网约车
一、RESTFULPost:新增Put:全量修改Patch:修改某个值Delete: 删除Get:查询删除接口也可以用POST请求url注意:url中不要带有敏感词(用户id等)url中的名词用复数形式url设计:api.xxx.co…...
【二叉树广度优先遍历和深度优先遍历】
文章目录一、二叉树的深度优先遍历0.建立一棵树1. 前序遍历2.中序遍历3. 后序遍历二、二叉树的广度优先遍历层序遍历三、有关二叉树练习一、二叉树的深度优先遍历 学习二叉树结构,最简单的方式就是遍历。 所谓二叉树遍历(Traversal)是按照某种特定的规则ÿ…...
Spring Cloud微服务架构必备技术
单体架构 单体架构,也叫单体应用架构,是一个传统的软件架构模式。单体架构是指将应用程序的所有组件部署到一个单一的应用程序中,并统一进行部署、维护和扩展。在单体架构中,应用程序的所有功能都在同一个进程中运行,…...
TCP三次握手与四次挥手(一次明白)
TCP基本信息 默认端口号:80 LINUX中TIME_WAIT的默认时间是30s TCP三次握手 三次握手过程:每行代表发起握手到另一方刚刚收到数据包时的状态 客户端服务端客户端状态服务端状态握手前CLOSELISTEN客户端发送带有SYN标志的数据包到服务端一次握手SYN_SENDLISTEN二次握手服务端发送…...
pyside6@Mouse events实例@QApplication重叠导致的报错@keyboardInterrupt
文章目录报错内容鼠标事件演示报错内容 在pyside图形界面应用程序开发过程中,通常只允许运行一个实例 假设您重复执行程序A,那么可能会导致一些意向不到的错误并且,从python反馈的信息不容易判断错误的真正来源 鼠标事件演示 下面是一段演示pyside6的鼠标事件mouseEvent对象…...
订单30分钟未支付自动取消怎么实现?
目录了解需求方案 1:数据库轮询方案 2:JDK 的延迟队列方案 3:时间轮算法方案 4:redis 缓存方案 5:使用消息队列了解需求在开发中,往往会遇到一些关于延时任务的需求。例如生成订单 30 分钟未支付࿰…...
< 开源项目框架:推荐几个开箱即用的开源管理系统 - 让开发不再复杂 >
文章目录👉 SCUI Admin 中后台前端解决方案👉 Vue .NetCore 前后端分离的快速发开框架👉 next-admin 适配移动端、pc的后台模板👉 django-vue-admin-pro 快速开发平台👉 Admin.NET 通用管理平台👉 RuoYi 若…...
内网渗透-基础环境
解决依赖,scope安装 打开要给cmd powershell 打开远程 Set-ExecutionPolicy RemoteSigned -scope CurrentUser; 我试了好多装这东西还是得科学上网,不然不好用 iwr -useb get.scoop.sh | iex 查看下载过的软件 安装sudo 安装git 这里一定要配置bu…...
Go语言学习的第一天(对于Go学习的认识和工具选择及环境搭建)
首先学习一门新的语言,我们要知道这门语言可以帮助我们做些什么?为什么我们要学习这门语言?就小wei而言学习这门语言是为了区块链,因为自身是php出身,因为php的一些特性只能通过一些算法模拟的做一个虚拟链,…...
C和C++到底有什么关系
C++ 读作”C加加“,是”C Plus Plus“的简称。顾名思义,C++是在C的基础上增加新特性,玩出了新花样,所以叫”C Plus Plus“,就像 iPhone 6S 和 iPhone 6、Win10 和 Win7 的关系。 C语言是1972年由美国贝尔实验室研制成功的,在当时算是高级语言,它的很多新特性都让汇编程序…...
14个Python处理Excel的常用操作,非常好用
自从学了Python后就逼迫用Python来处理Excel,所有操作用Python实现。目的是巩固Python,与增强数据处理能力。 这也是我写这篇文章的初衷。废话不说了,直接进入正题。 数据是网上找到的销售数据,长这样: 一、关联公式:…...
async/await 用法
1. 什么是 async/await async/await 是 ES8(ECMAScript 2017)引入的新语法,用来简化 Promise 异步操作。在 async/await 出 现之前,开发者只能通过链式 .then() 的方式处理 Promise 异步操作。示例代码如下: import …...
好意外,发现永久免费使用的云服务器
原因就不说了,说一下过程,在百度搜pythonIDE的时候,发现了一个网站 https://lightly.teamcode.com/https://lightly.teamcode.com/ 就是这个网站,看见这个免费试用,一开始觉得没什么,在尝试使用的过程中发…...
VSCode使用技巧,代码编写效率提升2倍以上!
VSCode是一款开源免费的跨平台文本编辑器,它的可扩展性和丰富的功能使得它成为了许多程序员的首选编辑器。在本文中,我将分享一些VSCode的使用技巧,帮助您更高效地使用它。 1. 插件 VSCode具有非常丰富的插件生态系统,通过安装插…...
SQL执行过程详解
1 、用户在客户端执行 SQL 语句时,客户端把这条 SQL 语句发送给服务端,服务端的进程,会处理这条客户端的SQL语句。 2 、服务端进程收集到SQL信息后,会在进程全局区PGA 中分配所需内存,存储相关的登录信息等。 3 、客…...
【物联网NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器
【NodeJs-5天学习】第四天存储篇⑤ ——PM2,node.js应用进程管理器1. 前言2. 官方说明3. 安装PM24. PM2常用命令4.1 启动命令4.2 重新启动命令4.3 热重载命令4.4 停止命令4.5 删除命令4.6 查看进程运行状态4.4 显示某一个进程的具体信息4.8 显示日志信息4.9 终端监控…...
【C++学习】【STL】deque容器
dequeDouble Ended Queues(双向队列)deque和vector很相似,但是它允许在容器头部快速插入和删除(就像在尾部一样)。所耗费的时间复杂度也为常数阶O(1)。并且更重要的一点是,deque 容器中存储元素并不能保证所有元素都存储到连续的内…...
当 App 有了系统权限,真的可以为所欲为?
看到群里发了两篇文章,出于好奇,想看看这些个 App 在利用系统漏洞获取系统权限之后,都干了什么事,于是就有了这篇文章。由于准备仓促,有些 Code 没有仔细看,感兴趣的同学可以自己去研究研究,多多…...
【DeepSeek-R1代码相似度引擎解密】:3层语义比对机制、Token归一化偏差修正与Jaccard阈值黄金分割点
更多请点击: https://kaifayun.com 第一章:DeepSeek代码重复检测 DeepSeek-R1 模型在训练过程中引入了严格的代码去重机制,其核心目标是消除训练语料中语义等价或高度相似的代码片段,从而提升模型对真实编程模式的学习能力与泛化…...
Tftpd32/Tftpd64不止是TFTP!手把手教你玩转它的DHCP和Syslog服务器功能
Tftpd32/Tftpd64:解锁DHCP与Syslog服务的隐藏潜力当大多数人提起Tftpd32/Tftpd64时,第一反应往往是它作为TFTP服务器的功能。这款轻量级工具确实在文件传输领域表现出色,但它的能力远不止于此。今天,我们将深入探索这款软件中两个…...
电信运营商每月处理海量工单,如何不再出错?基于AI Agent的端到端自动化解决方案
在2026年的电信行业,海量工单处理已不再仅仅是效率问题,而是合规与生存的底线。随着2026年5月20日《电信和互联网服务 基础电信企业网上营业厅服务规范》国家标准的正式实施,监管层对“信息透明、流程闭环、计费精准”的要求达到了前所未有的…...
Veo 2提示词性能瓶颈诊断:基于1726组AB测试的token敏感度热力图与阈值红线预警
更多请点击: https://kaifayun.com 第一章:Veo 2提示词编写最佳实践总览 Veo 2 是 Google 推出的高性能视频生成模型,其对提示词(prompt)的语义精度、结构清晰度和上下文控制能力高度敏感。高质量提示词并非简单堆砌关…...
用ESP32-C3的PWM做个RGB呼吸灯吧:从配置结构体到色彩渐变(乐鑫ESP-IDF实战)
ESP32-C3 RGB呼吸灯实战:从PWM配置到色彩渐变算法 当智能家居的灯光不再只是简单的开关控制,而是能像呼吸般自然渐变时,整个空间的氛围立刻变得生动起来。ESP32-C3凭借其出色的LED PWM控制器(LEDC)外设,为开…...
BetterNCM安装器终极指南:5分钟解锁网易云音乐无限潜能
BetterNCM安装器终极指南:5分钟解锁网易云音乐无限潜能 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 你是否觉得网易云音乐PC版功能有限,界面单调?…...
3分钟快速解决Windows热键冲突检测难题:Hotkey Detective终极指南
3分钟快速解决Windows热键冲突检测难题:Hotkey Detective终极指南 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective …...
5分钟掌握m4s-converter:将B站缓存视频无损转换为MP4的终极指南
5分钟掌握m4s-converter:将B站缓存视频无损转换为MP4的终极指南 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 你是否曾在B站缓存了…...
Neat Bookmarks:重构Chrome书签管理的树状结构解决方案
Neat Bookmarks:重构Chrome书签管理的树状结构解决方案 【免费下载链接】neat-bookmarks A neat bookmarks tree popup extension for Chrome [DISCONTINUED] 项目地址: https://gitcode.com/gh_mirrors/ne/neat-bookmarks 在信息过载的数字化工作环境中&…...
3大核心模块+5步实战:用RPFM彻底改变《全面战争》模组开发体验
3大核心模块5步实战:用RPFM彻底改变《全面战争》模组开发体验 【免费下载链接】rpfm Rusted PackFile Manager (RPFM) is a... reimplementation in Rust and Qt6 of PackFile Manager (PFM), one of the best modding tools for Total War Games. 项目地址: http…...




协议方案名: http 或者 https



