目录
概述
Fiddler是位于客户端和服务器端的http代理,http(超文本传输协议)抓包工具之一(简单的接口测试工具、发包工具、回放工具)
Fiddler功能:
- ·监测浏览器所有的HTTP/HTTPS流量
- ·查看、分析请求内容细节
- ·伪造客户端请求和服务器响应
- ·测试网站的性能
- ·解密HTTPS的web会话
- ·全局、局部断点功能
- ·第三方插件
Fiddler使用场景:
- 接口调试、接口测试、线上环境调试、web性能分析
- 判断前后端bug、开发环境hosts配置、mock、弱网断网测试
C/S架构(client-server):
浏览器到服务器架构
- 编写程序部署到web服务器
- web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求
- 客户端通过http协议获取服务器上的页面、文档等资源
Tomcat:
- web服务器,主要用来部署资源,提供服务
- 客户端请求的内容都是从服务端(提供服务的计算机)拉取下来的
HTTP:
用于从万维网服务器传输超文本(资源)到本地浏览器的传输协议;HTTP协议是基于TCP应用层协议,他不关心数据传输的细节,主要是用来规定客户端和服务但的数据传输格式,最初是来向客户端传输HTML页面的内容。默认端口是80。
http是基于请求和响应模式的、无状态的、应用层协议
HTTP请求报文:
主要由请求行、请求头部、空一行、请求正文(请求体)[get请求没有请求体]四部分组成
get请求没有请求体,是因为get请求是直接从浏览器上输入的一个地址
请求行:请求方法(put、grt、post…)、URL(统一资源定位符[找到资源地址的表达式])、协议版本
请求方法:
URL:统一资源定位符,用于描述网上的资源
格式:scheme://host[:port#]/path/…/[?query-string]
·scheme:协议,如http,https,ftp等
·host:域名或者IP地址
·port:端口[通过端口确定服务]
·path:资源路径
·query-string:发送的参数
例子:https://www.baidu.com/s(path路径)?wd=XXX
请求头:发起请求的附加信息
·Host(域名):为了确定主机地址
·Accept:想接收的内容,比如:application/json格式
·User-Agent:用户客户端信息,比如:系统和浏览器的一些版本的说明
·Content-Type:发的内容的格式是什么,如:application/x-www-form-urlencoded:charset-UTF-8表单编码的格式
·Referer:表示从哪个网址、哪个页面上发起的请求,防止盗链
·Accept-Encoding:可接收的内容编码,如:gzip(压缩)[节省传输时间,提高传输效率]
·Accept-Language:接收的语言,比如:zh-CN
·Cookie
请求体:
发送给服务器的内容(文本)
响应行:
HTTP/1.1:超文本传输协议版本号
200:状态码(用以表示网页服务器HTTP响应状态的3位数字代码)
OK:表示传输成功
响应头:
响应体:
请求通过详情
HTTPS:
HTTP+ssl+TLS
Fiddler组成部分:
Statistics:
性能方面的统计。HTTP请求的性能和其他数据分析,如DNS解析的时间;建立TCP/IP连接的时间消耗等信息
·Request Count:请求数量
·Bytes Sent:发送的字节大小,包括(headers,body)[get请求没有body]
·Bytes Sent:接收的字节大小,包括(headers,body)
·ClientConnected:建立连接的时间
·DNS Lookup:寻址DNS解析时长
·TCP/IP Connect:TCP三次握手花费的时间
Inspectors:
检查器。以多种方式查看请求的请求报文和响应报文相关信息
AutoResponder:
自动响应器。可用于拦截某一请求,进行如下操作(篡改响应):
·重定向到本地资源
·使用Fiddler的内置响应
·自定义响应
生产环境上出现了一个问题,直接修改不合理,可能会影响正在使用应用的客户,于是可以使用自动响应器将请求拦截下来,重定向到本地或者指定的响应
JavaScript:
做交互用的
Composer:
设计请求报文,并执行。
作用:发包、进行接口测试
Filters:
过滤器,多维度的组合条件类似于sql中的where(多维度的过滤器,过滤出我们想要的请求)
·Hosts:主机的过滤
·Client Process:客户端进程的过滤
·Request Headers:请求头的过滤
·Breakpoints:断点的过滤
·Response Status Code:响应状态码的过滤
·Response Type and Size:响应的类型和大小的过滤
Automatic Breakpoints:
自动断点(全局断点)
·Before Requests:请求前断点
·After Responses:响应后断点
·Disabled:失效
全局断点:
任何一个请求都会停下来(极端测试)
局部断点:
bpu请求前断点、bpafter响应后断点
取消断点:
黑框输入bpu
弱网测试:
Simulate Modem Speeds(模拟网络限速)
1s(秒)=1000ms(毫秒)
请求1KB,延迟300ms(毫秒)
响应1KB,延迟150ms(毫秒)
Fiddler证书协调客户端与服务端加密通信
Fiddler与服务端通信时,使用的是服务器的证书,Fiddler和Servers会做一个解密
Fiddler与客户端通信时,使用的是Fiddler发出的证书
客户端要信任Fiddler证书,才可以把对应的数据做一个解密
ios代理设置为Fiddler