什么是Fiddler?

网络项目的开发和测试中,Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的 ,可以说是非常常用的手头工具了,本文就Fiddler使用和配置进行说明。

代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端

了解HTTP协议

  • 要分析Fiddler抓取的数据包,先要熟悉HTTP协议。HTTP即超文本传输协议,是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
  • HTTP的工作过程:当我们请求一个超链接时,HTTP就开始工作了,客户端先发送一个请求到服务器,请求内容包括:协议版本号、请求地址、请求方式、请求头和请求参数;服务器收到请求后做相应的处理,并将响应数据返回到客户端,响应内容包括:协议版本号、状态码和响应数据。前端根据响应数据做相应的处理,就是最终我们看到的内容。这些过程是HTTP自动完成的,我们只是输入或点击请求地址,然后查看前端给我们展示的内容。更多关于HTTP协议的介绍请参考:http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html
  • 请求方式常用的有:GET、PUT、POST、DELETE。
  • HTTP状态码主要分为5类:以1开头的代表请求已被接受,需要继续处理;以2开头的代表请求已成功被服务器接收、理解、并接受;以3开头的代表需要客户端采取进一步的操作才能完成请求;以4开头的代表了客户端看起来可能发生了错误,妨碍了服务器的处理;以5开头的代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。
  • 常见的主要有:每个状态码的详细介绍请参考:https://baike.baidu.com/item/HTTP%E7%8A%B6%E6%80%81%E7%A0%81/5053660?fr=aladdin
    •   200:服务器成功处理了请求;
    • 302:请求的URL已临时转移;
    • 304:客户端的缓存资源是最新的,要客户端使用缓存。
    •   404:未找到资源;
    • 500:内部服务器错误;
    • 503:服务器目前无法为请求提供服务

Fiddler的配置及使用

1.  安装

  直接在官网下载最新版就行:  https://www.telerik.com/fiddler , 根据自己的系统下载版本,正常安装

Fiddler安装后,默认的端口号是8888,这个可以根据自己需要进行修改

Fiddler要能进行抓包,需要确保Capture Traffic是开启的(安装后是默认开启的),勾选File->Capture Traffic,也可以直接点击Fiddler界面左下角的图标开启和关闭抓包。

如果想抓HTTPS的请求,Fiddler需要做如下的设置

Tools --> Options ,然后按下图进行勾选,

将Fiddler正式安装在电脑上,点Action--> Trust Root Certificate--> Yes ,一步步确定

2. 浏览器配置

以Chrome浏览器为例,需要配置代理,fiddler才能抓到包。

浏览器到此为止,基本上不需要做什么配置,安装后就可以进行抓包了。

3. 手机的配置 ---安卓手机

(1)以安卓手机为例,先设置到代理,电脑需要连接WIFI,手机与电脑连接相同的WIFI,路径:设置 -- >已连接的WIFI -->高级设置-->代理:

代理服务器主机名的获取,cmd --> ipconfig --> IPv4 地址对应的 IP就是代理服务器主机名

(2)对于手机要抓包,还需要在Fiddler上进行如下配置

路径: Tools --> Options --> 勾选:Allow remote Computers to connect

(3) 手机要能够正常抓包,还需要安装证书,在手机浏览器里输入:代理服务器地址:端口号,(如 192.168.123.122:8888)

     

看到这里,恭喜您呐,PC浏览器,手机都可以正常的使用Fiddler抓包了。

4.Iphone手机配置 --- 2018.07.26补充

本打算就以安卓为例就可以了,结果发现很多小伙伴在配置IPhone的时候出现了问题,总是链接不上抓包工具,出现下面的错误

此处再补充一下Iphone的配置,因为它有一个特殊地方需要打开。直接上图吧,简单粗暴直观,照着配置就行了

(1) 先设置代理

(2) 安装fiddler证书

(3) 前面的配置都做好了,最关键的一步就是要信任证书

最后一步是关键了,很多小伙伴都折到这一步,连不上代理,找不到原因了。

经过这三步,Iphone就可以正常的被代理了

  

2018.6.21补充:

相同网关下,电脑连网线,手机连WiFi,也能抓包

最近公司的无线WiFi特别不稳定,电脑经常断网,可是不连WiFi又抓不了包,怎么办?

小哥突发奇想,公司的无线和有线都是在同一个网关下的,那是不是手机连WiFi,电脑连有线,也可以抓包,而且保证电脑不断网?

有想法就试一试。

(1)电脑连接网线

(2)cmd先获取以太网的IP地址

(3)手机还是继续连接WiFi,设置代理同上,只不过ip地址换成了以太网的

(4)通过fiddler测试,可以抓到包,测试通过

第二篇 Fiddler配置_浏览器&手机的更多相关文章

  1. 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www ...

  2. (转)从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    原文地址:  http://www.cnblogs.com/lyhabc/p/4682028.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集 ...

  3. (转载) 从0开始搭建SQL Server AlwaysOn 第二篇(配置故障转移集群)

    这一篇是从0开始搭建SQL Server AlwaysOn 的第二篇,主要讲述如何搭建故障转移集群,因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁 ...

  4. 从0开始搭建SQL Server 2012 AlwaysOn 第二篇(配置故障转移集群)

    本篇主要讲配置Windows 故障转移集群及遇到的相关问题(坑),因为AlwaysOn是基于Windows的故障转移集群的 在讲解步骤之前需要了解一下故障转移集群仲裁配置 四种集群的仲裁配置: 1.多 ...

  5. 第二篇elasticsearch配置

    1.去github搜索 elashsearch——head,以mobz开头的2.在根目录下安装npm install 3.修改elashsearch下的config文件下的elashsearch.yu ...

  6. Fiddler4工具配置及调试手机和PC端浏览器

    Fiddler最大的用处: 模拟请求.修改请求.手机应用调试 Fiddler最新版本 下载地址: http://www.telerik.com/download/fiddler Fiddler 想要监 ...

  7. [老老实实学WCF] 第二篇 配置WCF

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  8. 老老实实学习WCF[第二篇] 配置wcf

    老老实实学WCF 第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Col ...

  9. (转)[老老实实学WCF] 第二篇 配置WCF

    第二篇 配置WCF 在上一篇中,我们在一个控制台应用程序中编写了一个简单的WCF服务并承载了它.先回顾一下服务端的代码: using System; using System.Collections. ...

随机推荐

  1. 【转】深度分析Java的ClassLoader机制(源码级别)

    原链接 Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中, JVM在加载类的时候,都是通过ClassLoa ...

  2. json 二进制传输方案

    json 传输二进制数组方案 json 是一种很简洁的协议,但可惜的是,它只能传递基本的数型(int,long,string等),但不能传递byte类型.如果想要传输图片等二进制文件的话,是没办法直接 ...

  3. Android学习笔记_JNI hello world

    1.需要准备的工具,eclipse,cdt(c++)插件,cygwin(unix)和 android ndk. 在cygwin的etc目录下将ndk的路径引入到profile文件中,可以在cygwin ...

  4. Android学习笔记_12_网络通信之从web获取资源数据到Android

    从web获取图片信息,并显示到android的imageView控件. 一.添加网络访问权限. <uses-permission android:name="android.permi ...

  5. web 切换多语言版本

    1.Google 翻译 <div id="google_translate_element"></div> <script type="te ...

  6. Myeclipse项目移植到eclipse

    注意: 针对java web项目(项目图标上有小地球的标志,说明这是个Web项目) 1. 首先导入项目到eclipse里,如下图: 2.需要把项目结构给调一下,在项目上右键-->Properti ...

  7. 【模板】全排列(运用STL的next_permutation)

    (1) 先将要排列的数据存入数组中: (2) 再将数组元素从小到大排序: (3) 每次调用next_permutation函数,都只进行1次排列,若数组元素完全变为递减的排列,则该函数返回0: int ...

  8. cnpm 下载

    1, 如果电脑已经有node的话,可以先卸载,然后再去node官网下载最新node, 2,先全局安装cnpm, npm install -g cnpm --registry=https://regis ...

  9. php+高德地图webapi 高德jsapi 实现 当前位置与目标位置距离 并按照距离排序(坐标逆转换)

    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak='自己 ...

  10. Hadoop(8)-HDFS的读写数据流程以及机架感知

    1. HDFS的写数据流程 1.客户端通过fs模块向NameNode申请文件上传,NameNode检查请求是否合法,如用户权限,目标文件是否已存在,父目录是否存在等等 2.NameNode返回是否可以 ...