案例:利用Fiddler抓取苏宁易购网站数据包分析
抓包软件:Fiddler4
请求名字:www.suning.com
详细内容:
一、了解数据包区域的字段含义
图1数据包区域
#:顺序号,按照抓包的顺序从1递增(3)
Result:HTTP状态码(200)
Protocol:请求使用的协议,如HTTP/HTTPS/FTP等(HTTPS)
HOST:请求地址的主机名或域名(www.suning.com)
URL:请求资源的位置
Body:请求大小(50764byte)
Caching:请求的缓存过期时间或者缓存控制值
Content-Type:请求响应的类型(htm,编码utf-8)
Process:发送此请求的进程ID
Comments:备注
Custom:自定义值
二、查看数据包的具体内容
双击击具体的一条数据包可以在右侧菜单点击Insepector查看详细内容。分为请求(即客户端发出的数据)和响应(服务器返回的数据)两部分。
图2数据包具体内容
图3 发送请求数据区域
图4 响应区域
三、Request Header
下面是对Request Header区域各个item做介绍
图5 Request Header
请求方式:GET
协议:HTTP/1.1
1.Client头域
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8(浏览器端可以接受的媒体、文件类型)
Accept-Encoding: gzip, deflate, br(指定压缩方法,是否支持压缩,支持什么压缩方法(gzip、deflate,br))
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2(浏览器申明自己的接收语言)
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0(告知服务器客户端使用的操作系统与浏览器的名称和版本)
2、Cookie头域
有的请求不发送Cookies,有的请求有Cookies。
目的:将cookie值发送给服务器
3、Security 头域
Upgrade-Insecure-Requests: 1
4、Transport 头域
Connection: keep-alive TCP连接不会关闭
Host: www.suning.com (Host:发送请求时,该报头域是必需的。主要用于指定被请求资源的Internet主机和端口号,通常从HTTP URL 中提取出来)
四、Response Header
1. Cache头域
Date:生成消息的具体时间和日期
Expires:浏览器在指定过期时间内使用本地缓存
2. Entity头域
Last-Modified:用于指示资源的最后修改日期和时间
Content-Type:Web服务器告知浏览器自己响应对象的类型和字符集
Content-Length:指明实体正文长度,以字节方式存储的十进制数字表示。在数据下行中,要预先在服务器中缓存所有数据,然后所有数据一并发给客户端
3. Miscellaneous头域
Server:指明HTTP服务器的软件信息
X-Ser: BC5_dx-hunan-yueyang-1-cache-1
4、Security 头域
strict-transport-security: max-age=300
5. Transport头域
connection:Keep—alive TCP连接不会关闭
五、HTTP认证过程
1. 客户端发送HTTP Request给服务器;
2. Request中未包含Authorization header,服务器会返回一个401错误给客户端,且在Response中的header“www-Authenticate”中添加信息;
3. 客户端将用户名和密码以base64加密后,放在Authorization中发送给服务器,认证成功;
4. 服务器将Authorization header中的用户名和密码去除,进行验证。如果验证通过,将根据请求发送资源给客户端;
HTTP OAuth认证:OAuth对于http来说,就是放在Authorization header中的不是用户名密码,而是一个token(令牌)。
客户端的使用:客户端若要跟“使用基本认证的网站”进行交互,将用户名密码加载Authorization header中即可。
六、栏图标说明
通过上面的截图,可以看到每个请求的前面都有一个小图标,不同的图标代表了不同的含义,整理如下:
图6 图标说明