HTTP 抓包工具——Fiddler项目实战

2024-06-20 12:20

本文主要是介绍HTTP 抓包工具——Fiddler项目实战,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

        网络爬虫实质上是模拟浏览器向 Web 服务器发送请求。对于一些简单的网络请求,我们
可以通过查看 URL 地址来构造请求,但对于一些稍复杂的网络请求,仍然通过观察 URL
址将无法构造正确。因此我们需要对这些复杂的网络请求进行捕获分析,这个操作也称为抓
包。常用的抓包工具有 Fiddler Charles Wireshark 等,其中 Fiddler Windows 平台上应用
得较多。

 1.Fiddler 的工作原理

        Fiddler 是一个 HTTP 调试代理工具,它能够记录浏览器和 Web 服务器之间的所有 HTTP
请求,支持对网络传输过程中发送与接收的数据包进行截获、重发、编辑、转存等操作。与
浏览器自带的开发者工具(如 Chrome 浏览器的 F12 工具)相比, Fiddler 具有以下特点。
  •  可以监听 HTTP HTTPS 的流量,捕获浏览器发送的网络请求。
  • 可以查看捕获的请求信息。
  •  可以伪造浏览器请求发送给服务器,也可以伪造一个服务器的响应发送给浏览器,主
要用于前后端调试。
  •  可以测试网站的性能。
  •  可以对基于 HTTPS 的网络会话进行解密。
  •  支持第三方插件,可以极大地提高工作效率。
        Fiddler 以代理服务器的形式工作,它会在浏览器和 Web 服务器之间建立代理服务器。这
个代理服务器默认使用的代理地址为 127.0.0.1 ,端口为 8888 Fiddler 启动时会自动设置代理,
退出时会自动注销代理,这样就不会影响其他程序。 Fiddler 的工作原理如图 2-14 所示。
        2-14 中的 Fiddler 代理服务器位于浏览器和 Web 服务器之间,它记录了浏览器和 Web服务器之间产生的所有 HTTP 请求和 HTTP 响应。观察图 2-14 中箭头的流向可知,浏览器首 先向 Web 服务器发送 HTTP 请求,这个请求会先经过 Fiddler 代理服务器; Fiddler 代理服务器捕获浏览器发送的请求信息,捕获后可以根据需求对 HTTP 请求做一些处理,处理完以后转 发给 Web 服务器; Web 服务器处理完请求以后返回响应信息,这个响应也会先经过 Fiddler 代理服务器;Fiddler 代理服务器会捕获服务器返回的响应信息,捕获后也可以根据需求对 HTTP 响应做一些处理; Fiddler 代理服务器处理完响应信息后转发给浏览器。

2.有道翻译网站项目实战

        我们以有道翻译网站 为例,为大家演示如何使用 Fiddler 工具捕获翻译单词时发送的请求,具体步骤如下。
        (1 )在浏览器中打开有道翻译网站。该页面中有两个灰色的区域,左侧区域用于输入要
翻译的文本,右侧区域用于展示翻译后的结果。在左侧区域中输入 python ,单击“翻译”按
钮后,右侧区域展示了 python 的翻译结果,如图 2-39 所示。

 

2 )启动 Fiddler 工具,清空会话窗口中的会话列表。在浏览器中再次单击“翻译”按钮,
切换到 Fiddler 后可以看到捕获的所有网络请求,如图 2-40 所示。
在图 2-40 中,方框标注的请求是单击“翻译”按钮后发送的请求。
3 )双击图 2-40 中标注的请求,可以看到 Fiddler 右侧的 Request 窗口和 Response 窗口中
分别显示了该网络请求的请求信息与响应信息,如图 2-41 所示。

 

         在图 2-41 中,Request 窗口默认展示了 Inspectors 面板,该面板用于查看请求头的相关内

容; Response 窗口中默认展示了 Headers 面板,该面板用于查看响应头的相关内容。由图 2-41
可知,此时捕获请求采用的方法是 POST
        (4 )在图 2-41 Request 窗口中单击“ WebForms ”选项卡打开 WebForms 面板,该面板
展示了请求数据的具体内容;在 Response 窗口中单击“ JSON ”选项卡打开 JSON 面板,该面
板展示了翻译 python 后的结果,如图 2-42 所示。

 

 

这篇关于HTTP 抓包工具——Fiddler项目实战的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078117

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

Nginx部署HTTP/3的实现步骤

《Nginx部署HTTP/3的实现步骤》本文介绍了在Nginx中部署HTTP/3的详细步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前提条件第一步:安装必要的依赖库第二步:获取并构建 BoringSSL第三步:获取 Nginx

使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解

《使用Python批量将.ncm格式的音频文件转换为.mp3格式的实战详解》本文详细介绍了如何使用Python通过ncmdump工具批量将.ncm音频转换为.mp3的步骤,包括安装、配置ffmpeg环... 目录1. 前言2. 安装 ncmdump3. 实现 .ncm 转 .mp34. 执行过程5. 执行结

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

HTTP 与 SpringBoot 参数提交与接收协议方式

《HTTP与SpringBoot参数提交与接收协议方式》HTTP参数提交方式包括URL查询、表单、JSON/XML、路径变量、头部、Cookie、GraphQL、WebSocket和SSE,依据... 目录HTTP 协议支持多种参数提交方式,主要取决于请求方法(Method)和内容类型(Content-Ty

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python