Fiddler

一、Fiddler简介

Fiddler,是一个位于客户端和服务端之间的HTTP协议调试代理工具,功能非常强大,是web和app的调试利器,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据,是目前最常用的http抓包工具之一;

Fiddler**能做什么?**

在移动互联网时代,作为软件测试工程师,fiddler绝对是值得掌握并添加进技术栈里的一款好工具。在我们日常的测试工作中,哪些场景能用到fiddler?

1,接口报文分析,查看、分析请求内容细节

2, 辅助定位bug,解密https的会话,全局、局部断点功能

3, 构建模拟测试场景,监控浏览器所有的http/https流量,伪造客户端请求和服务端响应

4, APP弱网模拟测试

5, 前端性能分析及优化

6, 安全性测试

使用场景

接口调试、接口测试、线上环境调试、web性能分析

判断前后端bug、开发环境hosts配置、mock、弱网断网测试

工作原理

二、HTTP协议

HTTP(HyperText Transfer Protocol)即超文本传输协议,是用于web服务器和客户端浏览器之间的超文本信息(包括文本,图片,链接等)传输的规范,HTTP协议位于TCP/IP协议栈的应用层,通过TCP连接传送数据。

HTTP协议不关注数据传输的方式,主要是用来规定客户端和服务器之间的数据传输的格式,最初是用来向客户端传输HTML内容的,端口号为80。

是一种典型的请求应答式协议,并且是无状态的应用层协议。

(1)HTTP**请求报文**

HTTP请求报文主要由请求行、请求头部、空行、请求体正文 4部分组成

常见的请求方法(Request Method)

方法名称

说明

GET

获取服务器资源 (请求资源)

POST

传输实体主体到服务器 (提交资源)

PUT

传输主体文件到服务器的URL指定位置 (替换资源)

HEAD

获取报文头部信息,不返回主体部分,用于确认资源有效性,更新日期等 (获取响应头)

DELETE

删除URL指定位置文件 (删除资源)

OPTIONS

询问指定的方法,查询URL资源所支持的请求方法 (允许客户端查看服务器的性能)

TRACE

追踪路径,让服务器将之前的请求通信路径返回给客户端的方法 (回显服务器收到的请求,用于测试或诊断)

CONNECT

要求使用隧道协议连接代理,主要用地HTTPS协议

URL

Uniform Resource Locator:统一资源定位符,用于描述网上的资源

格式:schema://host[:port#]/path/.../[?Query-string]

https://mp.csdn.net/mp_blog/creation/

Scheme:协议,如http,https,ftp(传输文件)等

Host:域名或ip地址

Port:端口(例如:tomcat:8080,mysql:3306),默认80端口可以省略

Path:资源路径

Query-string:发送的参数(例如:get请求加参数key=value,key1=value1)

如:https://www.baidu.com/s?wd=张三

请求头(Request header)

Host

主机IP地址或域名

User-Agent

告诉服务器,客户端的软件环境,比如操作系统、浏览器版本

Accept

指定客户端接收信息的类型,如:image/jpg,text/html,application

Accept-Charset

客户端接受的字符集,如gb2312、iso-8859-1

Accept-Encoding

客户端可接受的内容编码,如gzip(压缩)

Accept-Language

客户端可接受的语言,如 zh-CN,zh,en-us;q=0.9(第一个会是首选的语言,其它语言会携带一个“q”值,来表示用户对该语言的喜好程度(0~1)

Authorization

客户端提供给服务端的进行鉴权的信息

Cookie

客户端通过请求头,将Cookie信息传给服务器

Referer

当前文档的URL,表示从哪个站点链接过来的(防止盗链)

Content-Type

请求体内容类型,如 Application, Multipart/form-data

Content-Length

数据长度

Cache-Control

缓存机制,如no-cache

Pragma

防止页面被缓存,和Cache-Control:no-cache一样

Connection

告诉服务器,在完成本次传输后,是否保持连接 如keep-alive

*如何添加或设置请求头?

  1. 点击Filters(过滤器)-->勾选use filters;
  2. 勾选set request header 例如:name   wangchen;

这时候所有请求发送时都会添加一个请求头(有些头部信息服务器不一定读)

(2)HTTP响应报文

HTTP响应报文主要由响应状态行、响应头、空行、响应体 4部分组成

状态码

状态码是3位数字代码,表示服务器返回的HTTP响应状态

状态码

主机**IP地址或域名**

1XX

指示信息,表示请求已接收,继续处理

2XX

表示请求已被成功接收、理解、接受, 如:200表示请求处理成功;

3XX

重定向-要完成请求必须进行更进一步的操作,302资源已经变更到其它位置了

4XX

客户端错误,请求有语法错误或请求无法实现,如400 客户端语法错误,403服务器拒绝提供服务,404请求资源不存在(输了错误的资源地址)

5XX

服务器错误,服务器未能实现合法的请求,如500服务器发生不可预期的错误,503当前服务器不能处理请求,一段时间后恢复

*了解http状态码HTTP状态码_百度百科

响应头(Response header)

响应头

描述

Server

http服务器的软件信息,如Server: Apache/2.2.4 (Win32) PHP/5.2.4

Date

响应报文的时间

Expires

指定缓存过期时间

Set-cookie

设置cookie

Last-modified

资源最后修改时间

Content-type

响应的类型和字符集,如Content-Type: text/html; charset=utf-8

Content-length

内容长度Content-Length: 10262

Connection

如Connection: Keep-Alive,表示tcp连接不关闭,不会永久保持连接,服务器可设置

Location

指明重定向的位置,新的URL地址,如302/304(ETag/location)的情况

*客户端,请求头,入参,头部信息怎么设置需要跟开发对接

Fiddler下载安装Jmeter插件,可以导出所有请求,做接口测试时在jmeter直接可以打开,file->export session-》all sessions  

(3)Fiddler**窗口布局**

*Fiddler菜单栏

Fiddler配置

Fiddler默认端口8888,(1024到65536)若端口被占用,手动配置端口号:Tools–Options–Connections

菜单栏tools--》options--》connections--》fiddler listens on port:8888

**工具条(工具栏的使用

Winconfig:fiddler5新增的功能,配置应用程序抓包

消息:给对应请求添加备注comments保存导出,save--All Session、Export Sessions

Replay:点击重放,选择需要重放的接口连接,重放攻击,点击快捷键r;自定义重放多次shift+R;串行而非并发,jmeter可并

Remove删除:Ctrl+x删除所有绘画列表,shift+delete删除未选中的请求

Go:断点,左下角All Process后面点击空白区域可设置请求前断点

Stream:流模式,和浏览器请求类似,及时返回请求;缓冲模式可集合返回请求;

Decode:解码,可在响应单点解码,也可以点击全部解码。

Keep All Session:设置保持会话的数量

Any Process:选择监听的程序,例如点击后+号选择某个浏览器或应用程序

Find:查找Ctrl+f,快速定位到请求;如,抓取登录截面某段文字进行标记

Save:保存会话列表所有请求

Add a screenshot to the capture:添加捕获截图(截图)

A simple timer:计时器右键取消

Browse:快捷打开浏览器

Clear Cache:清除浏览器缓存

TextWizard:编码、解码;如MD5解密,URL编码解码

Tearoff:分离面板

MSDN:微软开发者网站搜索

Online:本机的在线信息,如ip

***Session List监控面板(会话列表)

Fididler抓取到的每条http请求(每一条称为一个session)

主要包含的请求的ID编号、状态码、协议、主机名、URL、内容类型、body大小、进程信息、自定义备注等信息

响应头

描述

#

Id,获取Http Request的顺序,从1开始,以此递增

Result

HTTP状态码

Protocol

请求使用的协议,如HTTP/HTTPS/FTP等

Host

请求地址的主机名

URL

请求资源的位置,统一资源定位符

Body

请求的大小

Caching

请求缓存过期时间或者缓存控制值

Content-Type

请求响应的类型

Process

发送此请求的进程id

Comments

允许用户为此会话添加备注

Costom

允许用户设置自定义值,列右键选择自定义列

扩展:添加一列如server ip

1.打开Fiddler工具,Rules->Customize rules 2.Ctrl+F搜索"static function Main()"方法,添加以下代码:FiddlerObject.UI.lvSessions.AddBoundColumn("ServerIP", 120, "X-HostIP");

****命令行+状态栏

命令行--QuickExec(快速执行命令)

输入Help学习更多命令

  1. bpu 127.0.0.1(bpu---断点,包含127.0.0.1的请求设置断点)
  2. 取消---bpu ---》回车;
  3. >40  (选择大于40 字节);
  4. ?sometext--(url包含sometext的高亮显示),?User(高亮URL包含user)

状态栏

Capturing设置代理和取消代理

All processes 选择所有进程

空白(断点功能):点击一次请求前断点,点击两次响应后断点,点击三次取 消断点

选择会话数量:1/2( 两个选择一个)

附加信息:显示地址等详细信息

*****辅助标签+工具栏

Statistics:统计,http请求性能和其他数据分析,如DNS解析时间消耗,客户端连接时间,TCP/IP连接时间消耗等(统计性能相关信息)

Inspectors:检查器,双击以如下格式显示

  1. header,以层级或分类形式查看header
  2. TextView,文本形式查看
  3. Syntaxview,语法格式查看展示(请求为xml,json)
  4. Webforms,默认表单形式(form表单之间的请求)
  5. Hexview,16进制查看
  6. Auth,鉴权相关
  7. Cookies,展示cookies
  8. Raw,原生的源码形式查看

AutoResponder:自动响应器,可用于拦截某一请求,设置各种各样的规则; 操作如下:

生产环境---拦截--重定向到本地资源--->指定响应

1,使用fiddler的内置响应自定义响应

Add rule 添加规则,替换资源,编辑响应(做极端测试)

ctrl+f5去缓存刷新;find a file...指定资源路径

返回指定响应的资源或文件,右键编辑响应内容edit response

也就是mock功能

Composer:设计者,设计请求报文,报文篡改进行接口测试;

拖动多个请求至composer,选择对应请求进行回放;

Filter:过滤器,主机的过滤、进程的过滤、请求头的过滤、断点的过滤、响应状态码的过滤、响应类型和大小的过滤

弱网测试

Simulate

三、HTTPS**协议**

Hypertext Transfer Protocol Secure 超文本传输安全协议,端口号443, HTTPS 协议是由 HTTP 加上 SSL/TLS 协议构建的网络协议,主要通过数字证书、加密算法、非对称密钥等技术完成互联网数据传输加密,实现互联网传输安全保护。设计目标主要有三个:

1 数据保密性

2 数据完整性

3 身份校验安全性

应用层

HTTP

HTTPS

SSL/TLS

传输层

TCP

TCP

网络层

IP

IP

http

https

  • 20
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耀晨一生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值