fiddler抓包工具

 fiddler介绍

1、fiddler是一款HTTP协议调试代理工具,它能够抓取记录本机所所有HTTP(s)请求。其运行机制其实就是本机127.0.0.1上监听8888端口的HTTP代理。

2、fiddler无论对开发人员或者测试人员来说,都是非常有用的工具

fiddler下载与安装

官网地址:https://www.telerik.com/fiddler

1、先安装fiddlerxxx.exe

2、再安装fiddlercertmaker.exe

下载fiddlercertmaker.exe的地址:http://www.telerik.com/docs/default-source/fiddler/addons/fiddlercertmaker.exe?sfvrsn=2

3、、打开Fiddler,点击工具栏中的Tools——> Option

4、切换到 HTTPS 选项卡,勾选 Capture HTTPS CONNECTs,勾选 Decrypt HTTPS trafic,会弹出安装证书的提示。一路点是或确定安装即可。

5、重启fiddler,依然停留在 HTTPS 选项卡,点击右侧Actions,能看一个下拉菜单,点击 Export Root Certificate to Desktop,此时证书会生成到桌面上,名为 FiddlerRoot.cer,点OK保存,这样子就是证书导入成功。

 

 

 

 

使用场景

什么情况下会需要使用抓包工具

1、用手机app或浏览器访问一个页面,查看请求的结果是否正确、请求的参数是否正确。

2、在不修改任何环境的情况下,修改返回的结果,即通常所说的mock.

3、复杂场景

比如:同一个域名下的请求,/img/xxx的资源发送到serverA上,请求/api/xxx资源发送到ServerB上。

抓包工具

抓包工具有:wireshark、fiddler、httpwatch、Charles、chrome开发工具

软件名

简介 

独立运行

支持移动设备

收费

wireshark

网络抓包,监听网卡

httpwatch

集成到ie和chrome中的网页数据分析工具

基础版/专业版

Charles

HTTP代理、HTPP监控、HTTP反代理、查看HTP通信信息

fiddler

免费的HTTP通信查看工具

安装和使用

官网:https://www.telerik.com/fiddler

1、什么是http/https请求

在浏览器访问一个页面,在APP上查看一条新闻等,都会发起HTTP/HTTPS请求

安装使用-设置

点击Tools——>options——>HTTPS

勾选Decrypt HTTPS  traffic

ignore server certificate errors(unsafe)

一、fiddler抓包

1、inspectors选项卡

inspectors选项卡下可以查看http请求和HTTP响应的报文结构。其中raw选项卡可以查看完整的信息,headers选项卡只查看信息中的header。如下图所示

2、web Sessions列表

fiddler窗口的左边是web session 列表,是fiddler中重要的部分,显示了每个session的摘要信息。fiddler中大部分操作都需要在web session列表中选择一个或者多个session,再进行其他操作。web session列表中的表头可以进行排序。

一个session包含了一个HTTP请求和一个HTTP响应,如下图所示:

 

Web sessions列表栏中包含的信息如下:

1)#:这是fiddler生成ID(最后是按顺序排列)

2)Result:响应的状态码

3)Protocol:使用的协议HTTP或者https

4)Host:服务器的主机名和端口号

5)URL:URL路径

6)Body:HTTP响应中包含的字节数

7)Caching:跟缓存相关的字段的值

8)Content-Type:响应中content-type的值

9)process:对应本地windows的进程

3、fiddler捕获HTTP协议的数据包

1)启动fiddler,打开任何的浏览器,输入要抓包的网址,,回到fiddler界面,在session列表中,看到fiddler已经捕获到了很多session,可以选择任何一个session,然后选择inspectors选项卡,可以查看想起内容啦。

到这里我们已经学会使用fiddler来抓取HTTP协议的数据包了。

4、fiddler设置开始捕获和停止捕获

方法一:在fiddler中单击file->capture Traffic(快捷键是F12)来开始抓包或者停止抓包。

 

方法二、单击fiddler左下角的“capturing”按钮来开始抓包或者停止抓包。

二、HTTP协议报文的结构

HTTP报文分为2个:一个是HTTP请求报文,一个是HTTP响应报文。

1、HTTP请求报文的结构

浏览器发送给web服务器的HTTP请求报文内容。

HTTP请求报文的详细内容如下:

2、解压HTTP响应

在fiddler抓包过程中,我们经常看到HTTP响应是乱码的,单击“response boby is encoded click  to decode”按钮可以解压HTTP响应。如下图所示:

 

 

三、HTTP协请求方法和状态码

常见的HTTP方法如下:

方法描述
1get请求指定的页面信息并返回实体主体
2have类似于get请求,只不过返回的响应没有具体的内容,用于获取报头
3post向指定资源提交数据进行处理请求(例如提交表单或者上传文件),数据
被包含在请求体中。post请求可能会导致新的资源的建立和或对已有资源的修改
4put从客户端服务器传送的数据取代指定文档的内容
5delete请求服务器删除指定的页面

1、get方法

get是最常见的方法,用于获取资源,常用于向服务器查询某些数据

我们先启动fiddler,打开浏览器,输入http://www.cnblogs.com/tankxiao/,在fiddler中可以看到浏览器发出的是get方法。如下图所示:

1.1、带参数的get方法

浏览器也可以再get方法中把数据传给服务器,数据放在URL的问号(?)后面。

将查询字符串参数追加到URL末尾,以便将信息发送给服务器。这种方法叫查询查询字符串,或者叫做query string。

例如百度的URL的地址如下:

GET /8qUJcD3n0sgCo2Kml5_Y_D3/v.gif?pid=201&pj=www&pj_name=es_sug&es_sug_hot=0&es_sug_num=9&eb_sug_num=0&es_sug_bp=1_0&path=https%3A%2F%2Fwww.baidu.com%2F&wd=&rsv_sid=1457_21078_18560_28769_28721_28558_28836_28584_28604_22158&rsv_did=45922344a77f4d272807b88fcde7d72b&t=1555839551261 HTTP/1.1

查询字符串以“名=值”这样的形式出现,多个名值之间用字符“&”隔开。

在fiddler中,使用WebForms选项卡可以清楚的看到GET方法中的查询字符串参数。如下图所示:

2、post方法

post方法通常用来把表单中填好的数据发送给服务器

2.1我们可以看到浏览器发出的是post方法,该方法把用户名和密码的消息发送给服务器。

2.2使用webforms tab可以看到boby主体的内容,如下图所示:

2.3  get和post方法区别

1)get提交数据会放在URL之后,以问号(?)分割URL和传输数据,参数直接以&相接,如:GET /8qUJcD3n0sgCo2Kml5_Y_D3/v.gif?pid=201&pj=www&pj_name。post方法是把提交的数据放在HTTP包的body中。

2)get提交的数据大小有限制(因为浏览器对URL的长度有限制),post方法提交的数据大小没有限制。

3)get方法需要使用request.QueryString来取得变量的值,而post方法提交的数据大小没有限制。

4)get方法提交数据会带来安全问题,比如一个登录页面通过get方式提交数据时,用户名和密码将出现在URL上,如果页面可以被缓存或者其他人可以访问这台机器,就可以从历史记录获得该用户的账号和密码。

3、HTTP状态码

3.1什么是状态码?

每个HTTP响应报文都会携带一个状态码,用于告诉客户端请求是否成功,状态码是一个3位数的代码。

3.2状态码的分类

状态码已定义范围分类
1xx100—101信息提示,表示请求已被成功接收,继续处理
2xx200—206成功,表示请求已被成功接收、理解、接受
3xx300—305重定向,要完成请求,必须进行更进一步的处理
4xx400—415客户端的错误,请求有语法错误或请求无法实现
5xx500—505服务器错误,服务器未能实现合法的请求

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值