Fiddler是位于客户端和服务器端的HTTP代理,目前最常用的http抓包工具之一,功能非常强大,是web调试器的利器;它是一款简单的接口测试工具,发HTTP/HTTPS数据包工具
功能:
1、监控浏览器所有的HTTP/HTTPS流量
2、查看、分析请求内容细节
3、伪造客户端请求和服务器响应
4、测试网站的性能
5、解密HTTPS的web会话
6、全局、局部断点功能
7、第三方插件
使用场景:
1、接口调试、接口测试、线上环境调试、web性能分析
2、判断前后端bug、开发环境hosts配置、mock、弱网断网测试
HTTP请求报文:
HTTP请求报文主要由请求行、请求头部、空一行、请求正文(请求体)4部分组成
get请求有时候没有请求体,一般post请求有请求体
请求方法:
get:请求资源
post:提交资源
head:获取响应头
put:替换资源
delete:删除资源
options:允许客户端查看服务器的性能
trace:回显服务器收到的请求,用于测试或诊断
URL:
统一资源定位符,用于描述网上的资源
格式:schema://host[:port#]/path/.../[?query-string]
schema:协议,如http\https\ftp等
host:域名或ip地址
port:端口
path:资源路径
query-string:发送的参数(key=value的方式进行发送)
请求头:
host:主机ip地址或域名
User-Agent:客户端相关信息,如操作系统、浏览器等信息
Accept:指定客户端接收信息类型,如:image/jpg、text/html、application/json
Accept-Charset:客户端接受的字符集,如:gb2312
Accept-Encoding:可接受的内容编码,如gzip
Accept-Language:接受的语言,如zh-cn
Authorization:客户端提供给服务器,进行权限认证的信息
Cookie:携带的cookie信息
referer:当前文档的URL,即从哪个链接过来的
Content-Type:请求体内容类型,如application/x-www-form-urldecode
Content-Length:数据长度
Cache-Control:缓存机制,如no-cache
Pragma:防止页面被缓存,和Cache-Control作用一样
响应报文
主要由状态行、消息报头、空一行、响应正文4部分组成
状态行:
传输所用的协议版本+状态码
状态码:
1xx:提示信息,中间状态,仍需处理
2xx:成功
3xx:重定向相关(304页面无改变、有缓存)
4xx:客户端问题
5xx:服务器问题
响应头:
Server:Http服务器的软件信息
Date:响应报文的时间
Expiress:指定缓存过期时间
Set-Cookie:设置cookie
Last-Modified:资源最后修改时间
Content-Type:响应类型和字符集:text/html
Content-Length:内容长度
Connection:如keep-Aline,表示保持tcp连接,不会永久保持连接,服务器可设置
Location:指明重定向的位置,新的URL地址,如304的情况
快捷键:
选择对应的请求按住R键可以重放此请求
选择对应的请求按住Shift+R键可以选择重放此请求的次数(重放多次是重放攻击,不是压力测试)
删除请求,快捷键Delete
删除未被选择的请求,快捷键Shift+Delete
删除所有Ctrl+X
工具栏
1、工具栏的TextWizard是一个加密解密工具
2、底部工具栏的断点点一次是请求前断点,点两次是请求后断点
3、右侧的Statistics是接口请求的数据统计,比如tcp连接用了多久,DNS解析用了多久(常用作性能和web的优化调试)
4、Inspector检查器,用来检查接口的请求体和返回体是什么内容的
5、AutoResponder自动响应器:可用于拦截某一请求,进行如下操作:
1)重定向到本地的资源
2)使用Fiddler的内置响应
3)自定义响应,后端接口未开发好,可以用作接口的调试
6、Composer设计器:可以设计一个请求,模拟一个请求报文执行请求,使用这个方法进行接口测试,可以测出后端对数据的校验是否合理
7、Filter过滤器
主机的过滤、进程的过滤、请求的过滤、断点的过滤、响应的过滤、响应的大小和状态的过滤
8、顶部工具栏:Rules-Automatic Breakingpoint:断点测试,可以进行一些极端测试,比如修改请求体和响应体;模拟网络中断情况下页面响应
请求前断点:命令行bpu + 包含的路径
响应后断点:bpafter + 路径
取消断点:bpafter
9、Rules-Rerformance:弱网测试
安卓手机抓包:
将手机和电脑在同一个WIFI下,将WIFI中的代理设置为本机电脑的IP,同时Fiddler中Tools-options-Connection-Allow Remote Computers to connect勾选上,就可以在Fiddler上抓手机上的包了;
如果要抓HTTPS的包,需要在手机上安装证书,在手机浏览器上输入地址 http://主机ip:8888 访问,在页面最下面下载Fiddler证书;打开手机的设置-更多设置-系统安全-加密与凭据-从存储设备安装,安装成功之后就可以抓取HTTPS的包
注意:测试完毕,记得关闭代理,否则手机无法上网
IOS手机抓包:
将手机和电脑在同一个WIFI下,打开电脑的cmd,ping + 手机WIFI IP,如果可以收到回复,说明在同一个局域网里面;点击设置-WIFI-打开连接的WIFI设置,点击配置代理-手动,设置IOS代理服务器地址为Fiddler所在的主机的IP地址,设置端口为Fiddler监听的端口,点击存储-保存代理设置,就可以捕获HTTP请求;如果要抓HTTPS的包,需要在手机上安装证书,在手机浏览器上输入地址 http://主机ip:8888 访问,在页面最下面下载Fiddler证书,点击安装,安装完成之后,点击设置-通用-关于本机-证书信息设置中,信任刚安装的Fiddler证书,就可以捕获HTTPS的包
以项目的形式来管理规则
下载地址:Willow - Way to enjoy debugging
Fiddler是在windows上运行的程序,专门用来捕获HTTP,HTTPS的。
wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以wireshark看不懂HTTPS中的内容。
总结,如果是处理HTTP,HTTPS 还是用Fiddler, 其他协议比如TCP,UDP 就用wireshark。
1、ARP协议(Address Resolution Protocol)是一个通过解析网络层地址来寻找数据链路层地址的网络传输协议,它在IPv4中极其重要,ARP是通过网络地址来定位MAC地址;
我们使用nmap -sn 来基于ARP协议进行扫描
2、ICMP协议:打开一个终端,ping +网络地址 ,发送一个ping包
3、TCP
4、HTTP
curl是一个在命令行下工作的文件传输工具,我们可以用来发送http请求,curl -I 大写的i,表示仅返回头部信息
1、编写程序部署到web服务器
2、web服务器运行在服务器上,绑定ip地址并监听某端口,接收和处理http请求
3、客户端通过http协议获取服务器上的网页、文档等资源
(部署资源:tomcat是一个web服务器,用来部署资源用的)
ll是罗列出当前文件或目录的详情信息,含有时间、读写权限、大小等信息 ,像Windows显示的详细信息,是ls-l的缩写
ls【-参数】:是比较常用的命令,仅罗列出当前文件名或目录名 就像Windows里的文件列表