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

相关文章

Spring Boot项目部署命令java -jar的各种参数及作用详解

《SpringBoot项目部署命令java-jar的各种参数及作用详解》:本文主要介绍SpringBoot项目部署命令java-jar的各种参数及作用的相关资料,包括设置内存大小、垃圾回收... 目录前言一、基础命令结构二、常见的 Java 命令参数1. 设置内存大小2. 配置垃圾回收器3. 配置线程栈大小

基于Python实现高效PPT转图片工具

《基于Python实现高效PPT转图片工具》在日常工作中,PPT是我们常用的演示工具,但有时候我们需要将PPT的内容提取为图片格式以便于展示或保存,所以本文将用Python实现PPT转PNG工具,希望... 目录1. 概述2. 功能使用2.1 安装依赖2.2 使用步骤2.3 代码实现2.4 GUI界面3.效

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

Nginx中配置HTTP/2协议的详细指南

《Nginx中配置HTTP/2协议的详细指南》HTTP/2是HTTP协议的下一代版本,旨在提高性能、减少延迟并优化现代网络环境中的通信效率,本文将为大家介绍Nginx配置HTTP/2协议想详细步骤,需... 目录一、HTTP/2 协议概述1.HTTP/22. HTTP/2 的核心特性3. HTTP/2 的优

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python自建轻量级的HTTP调试工具

《使用Python自建轻量级的HTTP调试工具》这篇文章主要为大家详细介绍了如何使用Python自建一个轻量级的HTTP调试工具,文中的示例代码讲解详细,感兴趣的小伙伴可以参考一下... 目录一、为什么需要自建工具二、核心功能设计三、技术选型四、分步实现五、进阶优化技巧六、使用示例七、性能对比八、扩展方向建

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis

MyBatis 动态 SQL 优化之标签的实战与技巧(常见用法)

《MyBatis动态SQL优化之标签的实战与技巧(常见用法)》本文通过详细的示例和实际应用场景,介绍了如何有效利用这些标签来优化MyBatis配置,提升开发效率,确保SQL的高效执行和安全性,感... 目录动态SQL详解一、动态SQL的核心概念1.1 什么是动态SQL?1.2 动态SQL的优点1.3 动态S