Fiddler工具使用流程
来源:读miantest的《Fiddler工具使用介绍一到三》的实践结果记录
Fiddler工具使用介绍一:
1、代理:就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。
HTTP的工作过程:当我们请求一个超链接时,HTTP就开始工作了,客户端先发送一个请求到服务器,请求内容包括:协议版本号、请求地址、请求方式、请求头和请求参数;服务器收到请求后做相应的处理,并将响应数据返回到客户端,响应内容包括:协议版本号、状态码和响应数据。前端根据响应数据做相应的处理,就是最终我们看到的内容。这些过程是HTTP自动完成的,我们只是输入或点击请求地址,然后查看前端给我们展示的内容
2、HTTP即超文本传输协议,是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。
3、HTTP状态码主要分为5类:HTTP应答码也称为状态码,它反映了Web服务器处理HTTP请求状态。HTTP应答码由3位数字构成,其中首位数字定义了应答码的类型:
1XX-信息类(Information),表示收到Web浏览器请求,正在进一步的处理中
2XX-成功类(Successful),表示用户请求被正确接收,理解和处理例如:200
3XX-重定向类(Redirection),表示请求没有成功,客户必须采取进一步的动作。
4XX-客户端错误(Client Error),表示客户端提交的请求有错误 例如:404
NOT Found,意味着请求中所引用的文档不存在。
5XX-服务器错误(Server Error)表示服务器不能完成对请求的处理:如 500
4、Result:HTTP状态码
Protocol:请求使用的协议,如HTTP/HTTPS/FTP等
HOST:请求地址的主机名或域名
URL:请求资源的位置
Body:请求大小
Caching:请求的缓存过期时间或者缓存控制值
Content-Type:请求响应的类型
Process:发送此请求的进程ID
Comments:备注
Custom:自定义值
5、请求数据展示:
- 请求方式:GET
- 协议: HTTP/1.1
- Client 头域:
- COOKIE头域:将cookie值发送给服务器
Transport 头域:【Connection:当网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接是否关闭。keep-alive表示不会关闭,客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;close表示关闭,客户端再次访问这个服务器上的网页,需要重新建立连接。
HOST:主机名或域名,若没有指定端口,表示使用默认端口80】
- TextView:显示请求或响应的数据【get请求则为空,post请求存在数据】
- WebForms:请求部分以表单形式显示所有的请求参数和参数值;响应部分与TextView内容是一样的。
- Auth:显示认证信息,如Authorization
- Cookies:显示所有cookies
- Raw:显示Headers和Body数据
- JSON:若请求或响应数据是json格式,以json形式显示请求或响应内容
- XML:若请求或响应数据是xml格式,以xml形式显示请求或响应内容
6、总结:通过Fiddler可以抓取请求和响应参数,通过对参数进行分析,可以准确的定位是前端还是后台问题。
Fiddler工具使用介绍二:
1、手机端使用流程:
- 设置代理:
第一步:确保手机和Fiddler所在主机在同一个局域网中;
第二步: 获取Fiddler所在主机的ip地址,通过cmd命令进入命令编辑器,输入ipconfig -all,找到IPv4地址,记下该地址;
第三步:手机连接wifi后,设置代理,ip为主机ip地址,端口8888;
- Fiddler端设置:
第四步:到Fiddler菜单栏中【Tool】-【Option】的【Connections】中勾选【Allow remote computers to connect】选项,然后重启Fiddler,端口默认8888
- 手机端安装证书:
第五步:在手机浏览器一栏输入电脑的IP地址和端口号,进入一个网页,点击最下面那个FiddlerRoot certificate下载证书,下载成功后在设置里面安装;
第六步:android安装步骤:打开高级设置->安全->从SD卡安装证书->找到证书文件->点击为证书命名点击确定即可安装成功
第六步:iOS手机安装步骤:下载成功后直接安装,设置信任证书即可
2、fiddler过滤回话:
- 在右侧菜单【Fittlers】选项,分为9部分设置Fiddler
第一部分:【Use Filters】是否使用过滤
第二部分:【Actions】过滤设置如何运行。如立即允许过滤设置
第三部分:【Hosts】主机网络设置,如只显示内网或者外网,是否显示主机现象
第四部分:【Client Process】根据客户端进程信息进行过滤
第五部分:【Request Header】根据请求头过滤
第六部分:【Breakpoint】断点设置过滤
第七部分:【Response Status Code】:根据响应状态码设置断点
第八部分:【Response Type and Size】根据响应类型和大小进行过滤
第九部分:【Response Headers】根据响应数据头部进行过滤
工具使用介绍三:
1、对request设置断点:
- 菜单【Rules】-【Automatic Breakpoints】-【Before Requests】后,当我们设置断点后,进行HTTP请求,数据包顺序列会有中断的标记,单击该数据包可以看到在右侧会增加一行操作栏。这个时候我们在前端是没有正常加载网页的,点击【Run to Completion】后可以返回响应数据;
- 通过菜单选项或快捷键进行设置时,是将所有的服务器发出会将所有的HTTP请求都设置断点,同样我们可以单独设置某一个服务器的断点,如使用“bpu 服务器地址”命令来对特定的请求设置断点,输入命令后点击回车运行【bpu www.baidu.com】+enter,清除他的断点,则直接输入“bpu”。
2、对response设置断点:
- 菜单【Rules】-【Automatic Breakpoints】-【After Response】其他同上,
- 通过命令“bpafter 服务器地址”
如:以百度主页为例,我们将拦截到响应数据中的title值为”百度一下,你就知道“,我们将响应数据中的title修改为”Hello百度一下,你就知道“。
我们可以看到前端展示结果:百度的标题修改为【Hello百度一下,你就知道】。
3、fiddler的编码和解码:
- 响应body解码
有时候我们在Fiddler上看到响应数据是几个乱码字符,首先我们可以点击,上方黄色提示区域直接进行解码
- 请求和响应数据解码
有的时候,基于安全性考虑,开发人员会将请求和响应的body根据一定规则进行解码。如果是普通的编码规则,我们可以直接通过Fiddler操作进行解码。例如在登录百度网站的时候,有个参数的值是一个url地址,这个url经过urlEncode进行转码了。我们就可以将该参数通过urlDecode进行解码。