Java 轻松入门使用Fiddler抓包工具教程

 更新时间:2022年02月12日 15:55:10   作者:春风~十一载  
超文本传输协议(HTTP)是一个简单的请求-响应协议,其主要是基于TCP来实现的,可以通过Chrome开发者工具或者Wireshark或者Fiddler抓包,以便分析 HTTP 请求/响应的细节,本篇博客主要谈论如何使用Fiddler抓取HTTP,当然也可以抓取HTTPS

一. 下载安装Fiddler

这里强烈建议大家在官网上下载安装,在此附上链接https://www.telerik.com/fiddler,在其它地方安装很有可能会给你再下一堆不必要的软件(垃圾全家桶),待下载安装好后,页面大概是这样的:

二. 设置抓取HTTPS功能

刚下载安装好后,是默认不支持抓取HTTPS协议的,要想抓取HTTPS,

先点击左上角的Tools-Options-HTTPS

然后再选中这三个选项,

接着点击Actions-Export Root Certificate to Desktop,此时桌面上会出现这个文件:

我们关闭Fiddler,接着我们需要在浏览器上导入证书(上面这个文件),以谷歌浏览器为例:点击设置-安全和隐私设置-安全-管理证书:

在受信任的根证书颁发机构里导入桌面上生成的证书即可,最后我们重新打开Fiddler,就可以抓取HTTPS协议了

三. 尝试抓取HTTP/HTTPS协议

HTTPS也是基于HTTP的一种应用层协议,只是在HTTP的基础上进行了加密而已,Fiddler会自动帮助我们进行解密,还原成最初HTTP的样子

我们随便打开一个页面(以搜狗为例),此时会在Fiddler的左侧页面看到如下信息:

这个左侧列表中,里面的每一条都是抓取到的HTTP/HTTPS的请求+相应,大部分情况下都是有请求+对应的相应的(除非对方服务器挂了),选中其中的任何一条内容,都可以观察到请求和相关响应的详细格式和具体的信息(如果觉得内容太多可以随便选中其中一条按住ctrl+a全选,然后按住delete就可以全部删除了)

其中显示颜色为蓝色的内容就是获取到的搜狗搜索页面的请求+响应

我们双击Inspectors:

其中右上角为HTTP请求的详细格式(如上图)

右下角为HTTP响应的详细格式(如上图)

最后,我们点击上方的raw,就可以看到请求和响应的原始数据啦:

但需注意,请求的原始数据就是被用来直接写入到TCP socket中构成HTTP请求的。

但我们看到的响应的原始数据事实上是压缩后的数据(网络带宽是一个高成本的资源,把数据压缩之后传输,能够节省网络带宽,提高效率降低成本),因此我们需要点击上面的解压缩然后才可以看到从TCP socket中读到的HTTP响应数据。

解压缩后如下:

四. 抓包工具的原理

Fiddler 相当于一个 “代理”,浏览器访问浏览器页面时,就会把HTTP请求先发给Fiddler,Fiddler 再把请求转发给浏览器的服务器,当浏览器服务器返回数据时,Fiddler拿到返回数据,再把数据交给浏览器。 因此Fiddler对于浏览器和浏览器服务器之间交互的数据细节,都是非常清楚的,进而可以帮助我们完成相应的抓包工作。

到此这篇关于Java 轻松入门使用Fiddler抓包工具教程的文章就介绍到这了,更多相关Java Fiddler抓包内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:

相关文章

  • Java中StringBuilder常用构造方法解析

    Java中StringBuilder常用构造方法解析

    这篇文章主要介绍了Java中StringBuilder常用构造方法解析,StringBuilder是一个可标的字符串类,我们可以吧它看成是一个容器这里的可变指的是StringBuilder对象中的内容是可变的,需要的朋友可以参考下
    2024-01-01
  • IDEA打开项目所有东西都在报红报错的解决方案

    IDEA打开项目所有东西都在报红报错的解决方案

    这篇文章主要给大家介绍了关于IDEA打开项目所有东西都在报红报错的三个解决方案,文中通过图文介绍的非常详细,对大家学习或者使用idea具有一定的参考学习价值,需要的朋友可以参考下
    2023-06-06
  • Shiro的运行大致流程详解

    Shiro的运行大致流程详解

    这篇文章主要介绍了Shiro的运行大致流程详解,Shiro和SpringSecurity都是Java领域中常用的安全框架,它们都提供了身份认证和授权功能,可以帮助开发者快速构建安全的应用程序,需要的朋友可以参考下
    2023-07-07
  • Java中==与equals的区别小结

    Java中==与equals的区别小结

    这篇文章主要介绍了Java中==与equals的区别小结,本文总结结论:== 与 equals()比较的内容是不同的,equals()方式是String类中的方法,它用于比较两个对象引用所指的内容是否相等,而 == 比较的是两个对象引用的地址是否相等,需要的朋友可以参考下
    2015-06-06
  • Java形参和实参的实例之Integer类型与Int类型用法说明

    Java形参和实参的实例之Integer类型与Int类型用法说明

    这篇文章主要介绍了Java形参和实参的实例之Integer类型与Int类型用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • java使用链表实现约瑟夫环

    java使用链表实现约瑟夫环

    这篇文章主要为大家详细介绍了java使用链表实现约瑟夫环,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 基于JDOM生成解析XML过程解析

    基于JDOM生成解析XML过程解析

    这篇文章主要介绍了基于JDOM生成解析XML过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-10-10
  • nacos服务注册服务发现依赖配置详解

    nacos服务注册服务发现依赖配置详解

    这篇文章主要为大家介绍了nacos服务注册服务发现依赖配置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • 你应该知道的21个Java核心技术

    你应该知道的21个Java核心技术

    Java的21个核心技术点,你知道吗?这篇文章主要为大家详细介绍了Java核心技术,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • 深入理解LinkedHashSet集合的底层机制

    深入理解LinkedHashSet集合的底层机制

    这篇文章主要介绍了LinkedHashSet的底层机制详解,LinkedHashSet根据元素的hashCode值来决定元素的存储位置,同时使用链表维护元素的次序, 这使得元素看起来是以插入顺序保存的,需要的朋友可以参考下
    2023-10-10

最新评论