1 Fiddler简介
Fiddler是位于客户端和服务器端的HTTP代理,是目前最常用的http抓包工具之一。
1.1 Fiddler的功能
Fiddler是一种web调试的绝佳工具,其功能主要有以下几点:
1、监控浏览器所有的HTTP/HTTPS流量;
2、查看、分析请求内容细节;
3、伪造客户端请求和服务器响应;
4、测试网站的性能;
5、解密HTTPS的web会话;
6、全局、局部断点功能;
7、第三方插件。
1.2 Fiddler的作用
接口调试、接口测试、线上环境调试、web性能分析、判断前后端bug、开发环境hosts配置、mock功能、弱网断网测试。
2 Fiddler原理
使用Chrome浏览器时,Chrome会去读一个代理,默认读的是系统代理。打开Fiddler时,会自动设置一个系统代理,具体设置如下:
打开Fiddler后,它会为Chrome设置代理服务器,查看方式:设置——系统——打开代理设置:
当关闭Fiddler后恢复。
3 HTTP协议(熟悉HTTP协议是学好Fiddler的前提条件)
3.1 概述
Hyper Text Transfer Protocol(超文本传输协议),用于从万维网服务器传输超文本到本地浏览器的传送协议。
HTTP协议是基于TCP的应用层协议,它不关心数据传输的细节,主要用来规定客户端和服务端的数据传输格式,最初是用来向客户端传输HTML页面的内容、默认端口是80。它是基于请求与相应模式的、无状态的、应用层的协议。
一个完整的HTTP请求包括两部分:
1、请求报文(客户端发向服务器的文本);
2、响应报文(服务器接收到客户端的请求,解析请求,做出响应)。
3.2 HTTP请求报文
HTTP请求报文分为四个部分:请求行、请求头、空行、请求正文(请求体),Get请求无请求体。
1、请求行:包括三部分:请求的方式(Post或Get等)、统一资源定位符(url)、HTTP的协议以及版本号的说明(目前最主流的为1.1版本)。
2、请求头:发起请求时的一些附加信息。比如主机是什么?想要接受的信息(html文本,json等)是什么?从哪个页面发起的请求?客户端发送内容的格式、编码是什么?接收的语言(语言环境)是什么?以及Cookie和系统、浏览器的一些版本说明等等:
Fiddler可以在请求头中添加自定义信息:
3、请求体:给服务器的传参。
3.3 HTTP响应报文
HTTP响应报文分为四个部分:响应行、响应头、空行、响应正文(响应体)。
1、响应行:包括三部分:传输时的协议及其版本、状态码(用于表示服务器HTTP响应状态的三位数)、原因描述
2、响应头:服务器给客户端的一些附加信息:
3、响应体:任意格式,做接口测试时,可以用来判断此时请求是否被正常处理。