位于客户端和服务器的HTTP代理 目前最常用的http抓包工具之一 功能强大,是web调试利器
主要功能功能:
监控浏览器所有的HTTP/HTTPS流量查看、分析请求和服务响应测试网站的性能解密HTTPS的web会话全局、局部断点功能第三方插件场景使用
接口调试、接口测试、线上环境调试、web性能分析判断前后端bug、开发环境hosts配置、mock、弱网断网测试Fiddler作为系统代理监听发往系统代理的请求和响应 Google和IE会自动发往代理服务器
HTTP请求报文主要请求行、请求头部、空一行、请求正文(请求体)4个部分组成
GET方法 POST方法 请求----------响应 Get和Post区别参考:https://blog.csdn.net/Raindropcds/article/details/107075286具体说明:
URL(Uniform Resource Locator:统一资源定位符) 用于描述网上的资源 格式:schema://host[:post#]/path/…/[?query-string] schema:协议 http,https,ftp等 host:域名或IP地址 port:端口 通过端口获取具体的服务 path:资源路径 query-string:发送的参数 例如:https://www.baidu.com/s?wd=test
请求头部信息
请求头描述Host主机ip或域名User-Agent客户端相关信息,如:操作系统,浏览器等信息Accept指定客户端接收信息类型,如:image/jpg,text/html,application/Accept-Encoding可接收的内容编码,如gzipAccept-Language接受的语言,如Accept-Language:zh-cnAuthorization客户端提供给服务端,进行权限认真的信息Cookie携带的cookie信息Refer当前文档的URL,从哪个连接过来,防止盗链Content-Type请求体内容类型,如Content-Type:application/x-www-form-urlContent-Length数据长度Cache-Control缓存机制,如Cache-Control:no-cachePragma防止页面被缓存,和Cache-Control:no-cache作用一样案例:
Host: test.lemonban.com //主机 Connection: keep-alive //在旧版本的HTTP上维持持续连接时使用 Content-Length: 62 Accept: application/json, text/javascript, */*; q=0.01 // X-Requested-With: XMLHttpRequest User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36 //客户端浏览器版本 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 //数据格式+编码 Origin: http://test.lemonban.com //源 Referer: http://test.lemonban.com/ningmengban/app/login/login.html //源页面 Accept-Encoding: gzip, deflate //编码 Accept-Language: zh-CN,zh;q=0.9 //语言参考文章: https://blog.csdn.net/qq_35689573/article/details/82120851 https://blog.csdn.net/q1056843325/article/details/53147180
响应头 响应头描述ServerHTTP服务器的软件信息Date响应报文的时间Expiree指定缓存过期时间Set-Cookie设置Cookie:服务器返回客户端的信息,下一次请求带上表示登录过Last-Modified资源最后的修改时间Content-Type响应的类型和字符集:如:Content-Type:text/html;charset=utf-8Content-Length内容长度Connection如Keep-Alive,表示保持Tcp连接不关闭,不会永久保存连接,服务器可设置Location指重定向的位置,新的URL位置,如304的情况工具条
备注信息:可以给请求添加备注信息 应用场景重放请求 快捷键 R:重放一个请求 Shift+R:重复请求多个请求 删除会话 正向删除:选中一个请求,点击键盘的[Delete]键 反向删除:选中一个请求,点击键盘的[Shift+Delete],删除除了其以外的其它请求 删除全部:Ctrl+X删除:images|Connects|
断点设置,转发请求
流模式
解码
保存会话数
查找 Crtl+F5:查找请求+响应+url等的内容
保存
清除IE缓存
编码或解码
Quick Exec:命令行
参考:https://docs.telerik.com/fiddler/knowledgebase/quickexec
?sometext :高亮请求 As you type sometext, Fiddler will highlight sessions where the URL contains sometext. Hit Enter to set focus to the selected matches. ?searchtextbpu string:设置包含有string的断点 bpu 结束断点Capture:捕获 设置全局断点
请求前断点 响应后断点以不同的格式展示请求信息 表单格式 使用不同的格式展示响应(部分)报文
AutoResponder(自动响应器):可用于拦截某一请求,进行如下操作: 1)重定向到本地的资源 2)使用Fiddler的内置响应 3)自定义响应 案例:拦截请求+更改logo为本地的图片 使用Fiddler提供的响应状态 更改之前 更改之后 选择本地的文件响应 选择Find a file :替换成本地的图片 更改之后案例2:实现重定向效果
直接更改响应报文 更改响应报文 编辑响应体内容 更改后效果 JS 提示框设计 直接篡改响应报文:实现重定向功能 还可以进行Mock测试,将接口隔离开来 Composer:设计者 做简单的接口测试对多个请求进行相关的设计处理:
Filters:过滤器 断点 直接在这里点击切换状态即可参照前面的[设置全局断点]部分 主要作用: 1)请求前:获取URL+更改请求报文+转发给服务器+查看响应状态 2)响应后截获:模拟断网模式,服务器返回的信息被Fiddler截获,客户端会体现出超时提示信息.
局部断点(Quick Exec) 请求前 bpu sometxt:给包含有string的添加断点 bpu:再次输入取消断点 请求后 bpafter sometxt bpafter
弱网测试 可以通过脚本来设置2)在FireBox导入证书 导入成功,重新开启浏览器即可抓取Firebox的HTTPS的数据包 原理:客户端发送请求给中间代理,需要信任代理,所以要证书; 代理通过证书跟服务器建立通信信任