在讲解抓包之前,先看一下我们的HTTP请求头中都包含了那些参数,这些参数的含义是什么。
请求头 | 含义 |
---|---|
Accept | 客户端支持的数据类型 |
Accept-Charset | 客户端采用的编码形式 |
Accept-Encoding | 客户端支持的数据压缩格式 |
Accept-Language | 客户端的语言环境 |
Host | 客户端想要访问的主机名称 |
If-Modified-Sence | 资源的缓存时间 |
Referer | 客户端从那个资源访问服务器的 |
User-Agent | 客户端的软件环境 |
Cookie | 客户端可以向服务器带数据 |
Connection | 请求完成之后是关闭还是保持连接 |
Date | 客户端当前请求时间 |
抓包抓的是客户端发给server的网络包,以及server返回给客户端的包。
示例:
在百度中搜索 fiddler的使用,抓取到的数据:请求头和请求行如下所示:
如图所示,这一部分就是请求行了。
数据copy出来的内容就是:
GET /s?ie=utf-8&f=3&rsv_bp=1&rsv_idx=1&tn=monline_3_dg&wd=fiddler%E4%BD%BF%E7%94%A8&fenlei=256&rsv_pq=d410c48d002f6544&rsv_t=16c9GIjIWx7au4zPRdR1ReDb8luE9OKPs8zeEqmb%2Bh7lQvG%2B4SonxX5O2LsV&rqlang=en&rsv_dl=ih_0&rsv_enter=1&rsv_sug3=2&rsv_sug1=2&rsv_sug7=001&rsv_sug2=1&rsv_btype=t&rsp=0&rsv_sug9=es_2_1&rsv_sug4=2835&rsv_sug=9 HTTP/1.1
这些数据含义依次是:请求方法、请求路径(包含了请求参数)、请求协议。
请求参数也可以在这里看到,比较的一目了然。
如下图所示就是请求头的内容了,由于请求头的内容太多了,就不方便copy出来看了。
get请求没有请求体。
使用查询ip地址的post请求展示请求体的内容。
在百度中搜索 fiddler的使用,抓取server返回给客户端的响应消息。
如图所示,标出来的这一部分就是状态行了,这些参数的含义依次是:响应协议、响应状态码、状态响应消息。
告诉浏览器服务端返回的数据是什么。
如图所示,我们看到的就是响应体
根据返回的值的不同,选择不同的数据格式就可以了。
如果响应结果中包含中文,会乱码显示,不要慌,点击上面的黄色块,对响应结果进行解码即可。
正常显示了:
?
分割URL和传输数据,请求参数之间用&
相连,而post的提交数据在http请求的请求体中。https://www.baidu.com/s?
ie=utf8&f=3&rsv_bp=1&rsv_idx=1&tn=monline_3_dg&wd=fiddler%E4%BD%BF%E7%94%A8&fenlei=256&rsv_pq=d410c48d002f6544&rsv_t=16c9GIjIWx7au4zPRdR1ReDb8luE9OKPs8zeEqmb%2Bh7lQvG%2B4SonxX5O2LsV&rqlang=en&rsv_dl=ih_0&rsv_enter=1&rsv_sug3=2&rsv_sug1=2&rsv_sug7=001&rsv_sug2=1&rsv_btype=t&rsp=0&rsv_sug9=es_2_1&rsv_sug4=2835&rsv_sug=9
Request.querystring
。post获取变量的值的方法是Request.body
在抓取https协议下的数据包之前,我们要先在fiddler中配置HTTPs,参考一下我的这一篇博客:fiddler工具详解-包含配置https
https的抓包和http抓包一样,上面的例子有的就是来自https类型的网站。
如果dev人员没有给接口文档,那么我们可以通过抓包的方式来获取接口信息:请求url,请求方法、参数、响应结果。
还是以搜索 fiddler使用 为例展示。
接口的请求路径可以在这里找到。辅助工具栏 - inspector - Raw,请求方法也可以看到是get请求,
打开postman,创建一个请求,输入请求URL,然后点击send,就可以看到我们的请求结果了。