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

相关文章

Java MQTT实战应用

《JavaMQTT实战应用》本文详解MQTT协议,涵盖其发布/订阅机制、低功耗高效特性、三种服务质量等级(QoS0/1/2),以及客户端、代理、主题的核心概念,最后提供Linux部署教程、Sprin... 目录一、MQTT协议二、MQTT优点三、三种服务质量等级四、客户端、代理、主题1. 客户端(Clien

在Spring Boot中集成RabbitMQ的实战记录

《在SpringBoot中集成RabbitMQ的实战记录》本文介绍SpringBoot集成RabbitMQ的步骤,涵盖配置连接、消息发送与接收,并对比两种定义Exchange与队列的方式:手动声明(... 目录前言准备工作1. 安装 RabbitMQ2. 消息发送者(Producer)配置1. 创建 Spr

sqlite3 命令行工具使用指南

《sqlite3命令行工具使用指南》本文系统介绍sqlite3CLI的启动、数据库操作、元数据查询、数据导入导出及输出格式化命令,涵盖文件管理、备份恢复、性能统计等实用功能,并说明命令分类、SQL语... 目录一、启动与退出二、数据库与文件操作三、元数据查询四、数据操作与导入导出五、查询输出格式化六、实用功

深度解析Spring Boot拦截器Interceptor与过滤器Filter的区别与实战指南

《深度解析SpringBoot拦截器Interceptor与过滤器Filter的区别与实战指南》本文深度解析SpringBoot中拦截器与过滤器的区别,涵盖执行顺序、依赖关系、异常处理等核心差异,并... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现

如何在Spring Boot项目中集成MQTT协议

《如何在SpringBoot项目中集成MQTT协议》本文介绍在SpringBoot中集成MQTT的步骤,包括安装Broker、添加EclipsePaho依赖、配置连接参数、实现消息发布订阅、测试接口... 目录1. 准备工作2. 引入依赖3. 配置MQTT连接4. 创建MQTT配置类5. 实现消息发布与订阅

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

springboot如何通过http动态操作xxl-job任务

《springboot如何通过http动态操作xxl-job任务》:本文主要介绍springboot如何通过http动态操作xxl-job任务的问题,具有很好的参考价值,希望对大家有所帮助,如有错... 目录springboot通过http动态操作xxl-job任务一、maven依赖二、配置文件三、xxl-

深度解析Spring AOP @Aspect 原理、实战与最佳实践教程

《深度解析SpringAOP@Aspect原理、实战与最佳实践教程》文章系统讲解了SpringAOP核心概念、实现方式及原理,涵盖横切关注点分离、代理机制(JDK/CGLIB)、切入点类型、性能... 目录1. @ASPect 核心概念1.1 AOP 编程范式1.2 @Aspect 关键特性2. 完整代码实

MySQL中的索引结构和分类实战案例详解

《MySQL中的索引结构和分类实战案例详解》本文详解MySQL索引结构与分类,涵盖B树、B+树、哈希及全文索引,分析其原理与优劣势,并结合实战案例探讨创建、管理及优化技巧,助力提升查询性能,感兴趣的朋... 目录一、索引概述1.1 索引的定义与作用1.2 索引的基本原理二、索引结构详解2.1 B树索引2.2

怎么用idea创建一个SpringBoot项目

《怎么用idea创建一个SpringBoot项目》本文介绍了在IDEA中创建SpringBoot项目的步骤,包括环境准备(JDK1.8+、Maven3.2.5+)、使用SpringInitializr... 目录如何在idea中创建一个SpringBoot项目环境准备1.1打开IDEA,点击New新建一个项