1、抓包工具介绍
抓包工具,是个特殊的软件,相当于一个 “代理程序”,浏览器给服务器发的请求就会经过这个代理程序,进一步的就能分析出请求和响应的结果如何。
通俗的讲,就是你可以通过抓包工具看到自己发送的请求和接收到的相应。
对于初学HTTP的同学来说,抓包工具便于我们分析HTTP的请求报文和响应报文
2、原理
抓包工具就相当于一个 “跑腿”,比如我们想买一桶泡面又不想自己去,我们就能找 室友(跑腿) 去超市帮我们买,此时超市只知道是 室友(跑腿)买了一桶泡面,并不知道是我们要买的。也就是说单方面对超市隐藏了客户信息,但是我们与超市之间进行了哪些交易,室友是非常清楚的。
所以,当我们用浏览器访问 baidu.com 时,就会把 HTTP请求先发给 抓包工具,而抓包工具在把请求转发给 baidu 的服务器,当 baidu 服务器返回数据时,抓包工具 拿到返回数据,再把数据交给浏览器。
3、fiddler 安装
抓包工具有很多中,例如 fiddler、wireshark、Charles等。这里我推荐安装 fiddler,使用起来简单,而且功强大。
点击 fiddler官网下载:Fiddler | Web Debugging Proxy and Troubleshooting Solutions
进入官网后,下滑选择Fiddler Classic,再点击 Try For Fress 下载
安装过程比较简单,一直 next 即可
安装后,启动 fiddler,点击左上角 File -> 选择 Capture Traffic 开启装包功能。开启成功后,页面左下角会出现 Capturing 字样。
4、介绍fiddler中字段
当我们打开fiddler 后,会发现左侧列表有好多数据,每一行数据开头有一个图案,下面将具体介绍这是字段和图案的含义。
首先介绍我们常用的列表头
# :抓取HTTP请求的顺序,从1开始递增
Result:HTTP状态码
Protocol:报文使用的协议,常见有 HTTPS、HTTP
Host:请求服务器的地址
URL:统一资源标志符(请求资源的位置)
Body:请求响应报文中正文大小
Caching:请求的缓存过期时间
Content-Type:请求响应类型
Process:发送请求的进程
下面展示一些常见的图标
图标 | 说明 |
服务端错误 |
响应,json格式 | |
会话被终止 | |
请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道 |
响应是一张照片 | |
普通响应成功 | |
请求使用 HTTP 的 POST 方法 |
请求使用 HTTP HEAD方法(响应应当没有 body,状态码一般为 204) | |
响应是 HTTP 304 (无变更) | |
请求已经发往服务器 |
已从服务器下载响应结果 | |
请求从断点处暂停 | |
响应从断点处暂停 |
更多细节请参考官方文档: User Interface Guide - Fiddler Classic
5、fiddler 使用
打开fiddler后,在浏览器中访问页面,fiddler就能抓取数据。
例如,我们在浏览器中访问 www.baidu.com,在fiddler 单击就能在右侧看到对应的信息了。
右上为请求信息,右下为响应信息
点击 raw 可以查看对应发送 http 数据
注意:如果大家抓取不到数据,可以尝试一下两步操作
1. 开启 fiddler 抓取 HTTPS 的功能
菜单栏 -> Tools -> optinos
2. 检查是否电脑上安装了其他的代理程序、翻墙软件、游戏加速器等,务必要把这些软件关闭,否则抓取不到数据。