Fiddler抓包学习笔记

背景介绍

近期笔者在逛CSDN时看见一篇非常有趣的文章,文章讲述的是通过Jmeter+Fiddler来实现微信投票活动的非法拉票,所以笔者对Fiddler进行了解,了解之后才发现Fiddler作用不仅如此,它还可以进行APP的接口测试等,建议读者在阅览本篇文章时先熟悉HTTP协议,起码弄清HTTP协议五类状态码。

名词解释

Fiddler是一个HTTP的调试代理,以代理服务器的方式,监听系统的Http网络数据流动,Fiddler可以也可以让你检查所有的HTTP通讯,设置断点,以及Fiddler所有的进出的数据,Fiddler还包含一个简单却功能强大的基于JScript .NET事件脚本子系统,它可以支持众多的HTTP调试任务。Fiddler支持断点调试技术,当你在软件的菜单-rules-automatic breakpoints选项选择before request,或者当这些请求或响应属性能够跟目标的标准相匹配,Fiddler就能够暂停Http通讯,并且允许修改请求和响应。这种功能对于安全测试是非常有用的,当然也可以用来做一般的功能测试,因为所有的代码路径都可以用来测试。

文章拓展

要分析Fiddler抓取的数据包,我们首先要熟悉HTTP协议,HTTP即超文本传输协议,是一个基于请求与响应模式的、无状态的、应用层的协议,绝大多数的Web开发,都是构建在HTTP协议之上的Web应用。

HTTP的工作过程:当我们请求一个超链接时,HTTP就开始工作了,客户端先发送一个请求到服务器,请求内容包括:协议版本号、请求地址、请求方式、请求头和请求参数;服务器收到请求后做相应的处理,并将响应数据返回到客户端,响应内容包括:协议版本号、状态码和响应数据。前端根据响应数据做相应的处理,就是最终我们看到的内容。这些过程是HTTP自动完成的,我们只是输入或点击请求地址,然后查看前端给我们展示的内容。请求方式常用的有:GET、PUT、POST、DELETE。

HTTP状态码主要分为5类:

以1开头的代表请求已被接受,需要继续处理;

以2开头的代表请求已成功被服务器接收、理解、并接受;

以3开头的代表需要客户端采取进一步的操作才能完成请求;

以4开头的代表了客户端看起来可能发生了错误,妨碍了服务器的处理;

以5开头的代表了服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

常见的主要有:200:服务器成功处理了请求;404:未找到资源;500:内部服务器错误;503:服务器目前无法为请求提供服务;302:请求的URL已临时转移;304:客户端的缓存资源是最新的,要客户端使用缓存。

更多状态码请参考生产环境常见的HTTP状态码列表(老男孩整理)

工作原理

Fiddler是位于客户端和服务器端之间的HTTP代理, 它能够记录客户端和服务器之间的所有 HTTP(S)请求,可以针对特定的HTTP(S)请求,分析网络传输的数据,还可以设置断点、修改请求的数据和服务器返回的数据。

1 WEB端

Fiddler在浏览器与服务器之间建立一个代理服务器,Fiddler工作于七层中的应用层,能够捕获通过的HTTP请求。Fiddler启动后会自动将代理服务器设置成本机,默认端口为8888。Fiddler不仅能记录PC上浏览器的网络请求数据,还可以记录同一网络中的其他设备的HTTP请求数据。数据传递流程大致如下:

Fiddler是以代理WEB服务器的形式工作的,浏览器与服务器之间通过建立TCP连接以HTTP协议进行通信,浏览器默认通过自己发送HTTP请求到服务器,它使用代理地址:127.0.0.1,端口:8888,当Fiddler开启会自动设置代理,退出的时候它会自动注销代理,这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动下Fiddler。

2 APP端

现在APP中的数据传输基本上都使用HTTS传输,传输的数据都是经过加密的,这增加了我们分析数据包的难度,还好Fiddler除了可以抓取HTTP数据包,还可以抓取HTTPS数据包。由于HTTPS传输需要使用到CA证书,所以抓取HTTPS数据包时需要做一些特殊配置。Fiddler截取HTTPS报文的流程大致

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值