本文是工具系列第一篇,后期会继续更新。web
Fiddler 是位于客户端和服务器端的 HTTP 代理,也是目前最经常使用的 HTTP 抓包工具之一。(Mac OS 建议采用 Charles)浏览器
它能够记录客户端和服务器之间的全部 HTTP 请求,并能够针对特定的 HTTP 请求,分析请求数据、设置断点、调试 web 应用、修改请求的数据,甚至能够修改服务器返回的数据,功能很是强大,是 web 调试和网络请求分析的利器。缓存
Fiddler 做为一个代理,天然客户端的全部请求都会先通过它,再转发给相应的服务器。反之,服务器端的全部响应,也都会先通过 Fiddler 而后发送给客户端。因此,Fiddler 支持全部能够设置 HTTP 代理为 127.0.0.1:8888 的浏览器和应用程序。服务器
咱们不妨直接看到 Fiddler 的界面,能够看到不少不错的东西。 微信
这里是大概的主界面,因为内容涵盖仍是比较多,因此咱们分块解析。网络
web session 面板区域主要包含了每条 HTTP 请求(每一条称为 session),主要包含了请求的 url,状态码,body 等信息。session
# HTTP Request 的顺序,从 1 开始,按照页面加载请求的顺序递增。其中序列号列中通常还有图标,表明不一样的响应类型。具体类型包括: 工具
Result HTTP 响应的状态。状态码解析请参考专业的 HTTP 书籍。测试
Protocol 请求使用的协议,如 HTTP/HTTPS/FTP 等。url
Host 请求地址域名。
URL 请求的服务器路径和文件名,也包括 GET 参数。
Body 请求的大小,单位为 byte。
Caching 请求的缓存过时时间或缓存控制 header 等值。
Content-Type 请求响应的类型(Content-Type)
Process 发出此请求的进程及进程 ID。
Comments 用户经过脚本或者右键菜单给此 session 增长的备注。
Custom 用户能够经过脚本设置的自定义值。
该区域基本是咱们必须关注的点,咱们能够在这个区域看到每条 HTTP 请求的具体数据统计和数据包分析。其中的 inspector 面板下的数据每每最受咱们的重视。
这里能够看到咱们请求的诸多数据,因为时间关系,咱们也就仅拿出其中的 Header 部分作讲解,其余部分同理。
上面的 Header 中包含了咱们常见的请求头,好比客户端的设备相关信息、Cookies、链接状态。
下面是咱们的响应头 Header,同时也包含了响应时间、过时时间、响应格式、数据包大小、链接状态等。
咱们常常在作一些接口测试的须要作一些骚操做,好比上传文件等,这个彻底不像 GET 请求那般能够直接带上咱们的参数在浏览器访问。这时候咱们又不想去写一个脚本。好伙计,Composer 正好知足了咱们的需求。
正如截图中样式,咱们能够设置请求方式、请求地址,参数、甚至是上传文件等,这一些请求咱们均可以模拟。
不得不感叹,确实黑科技。
过滤条件涵盖很是普遍,好比过滤特定 HTTP 状态码的请求、特定请求类型的 HTTP 请求等,更多的过滤方式还须要你们本身去挖掘。
对于 Web 抓包 要想抓包到相应的数据,必须设置浏览器代理为 127.0.0.1:8888,不然没法捕获到 HTTP 请求。
对于 HTTPS 的支持 默认状况下,Fiddler 是不支持直接查看 HTTPS 请求的,咱们必须在设备上安装它的证书。
这里姑且直接以抓取 Android 手机的 HTTPS 请求作示例。
首先设置 Fiddler。打开工具栏 => Tools => Fiddler Options => HTTPS
导出证书到手机。
直接在手机端安装。 在手机上安装证书这个操做,太多机型了,都不太同样,姑且你们自行百度。
我是南尘,只作比心的公众号,欢迎关注我。