上一篇博文写完了Fiddler的配置,本篇讲讲如何用Fiddler进行数据包的分析,下图是抓到的数据包区域,对这些区域的可见字段进行解析如下, 以便了解这些字段的含义

1.  了解数据包区域的字段含义

#:顺序号,按照抓包的顺序从1递增

Result:HTTP状态码      

Protocol:请求使用的协议,如HTTP/HTTPS/FTP等

HOST:请求地址的主机名或域名

URL:请求资源的位置

Body:请求大小

Caching:请求的缓存过期时间或者缓存控制值

Content-Type:请求响应的类型

Process:发送此请求的进程ID

Comments:备注

Custom:自定义值

2. 查看数据包的具体内容

双击击具体的一条数据包可以在右侧菜单点击Insepector查看详细内容。分为请求(即客户端发出的数据)和响应(服务器返回的数据)两部分。

3. Request Header

下面是对Request Header区域各个item做介绍

请求方式:GET

协议: HTTP/1.1

1. Cache 头域

  if-Modified-since:缓存

  if-None-Match:可提高性能(在Response中添加ETag信息,客户端再次请求资源,Request中加入if-None-Match(ETag的值),服务器验证ETag,若没改变返回状态码304,有改变,返回状态码200)

  Pragma:防止页面被缓存

  Cache-Control:Response—Request遵循的缓存机制

  public:可以被任何缓存所缓存

  private:内容只缓存在私有缓存中

  no-cache:所有内容都不会被缓存

2. Client 头域

  User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.181 Safari/537.36 (告知服务器客户端使用的操作系统与浏览器的名称和版本)
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8 (浏览器端可以接受的媒体、文件类型)
  Accept-Encoding: gzip, deflate (指定压缩方法,是否支持压缩,支持什么压缩方法(gzip、deflate))
  Accept-Language: zh-CN,zh;q=0.9 (浏览器申明自己的接收语言)

  Accept-chareset:(浏览器申明自己接收的字符集。如gb2312,UTF_8)

3. Cookies 头域

  有的请求不发送Cookies,有的请求有Cookies。

  目的:将cookie值发送给服务器

4. Entity头域

  Content-Length:发送给HTTP服务器的数据长度

  Content-Type:决定文件接收方将以什么形式、什么编码读取此文件

5. Security 头域:

  Upgrade-Insecure-Requests: 1

6. Transport 头域:
  Host: uat.casserver.yxqiche.com(Host:发送请求时,该报头域是必需的。主要用于指定被请求资源的Internet主机和端口号,通常从HTTP URL 中提取出来)
  Proxy-Connection: keep-alive(Connection:当网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接是否关闭。keep-alive表示不会关闭,客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;close表示关闭,客户端再次访问这个服务器上的网页,需要重新建立连接。)

  connection:Keep—alive            TCP连接不会关闭

  connection:close                     一个Request完成后,TCP连接关闭

7. Miscellaneous头域

  Referer:提供了Request的上下文信息,告诉服务器我是从哪个链接过来的

  A------>B(B的服务器从Referer中统计有多少用户是从A过来的)

4. Response Header

1. Cache头域

  Date:生成消息的具体时间和日期

  Expires:浏览器在指定过期时间内使用本地缓存

2. Cookie/Login头域

  P3P:用户跨域设置cookie,可以解决iframe跨域访问cookie的问题

  Set-Cookie:重要的header,用于把cookie发送到客户端浏览器,每一个写入cookie都会生成一个set-cookie

3. Entity头域

  ETag:与if-None-Match配合使用

  Last-Modified:用于指示资源的最后修改日期和时间

  Content-Type:Web服务器告知浏览器自己响应对象的类型和字符集

  Content-Length:指明实体正文长度,以字节方式存储的十进制数字表示。在数据下行中,要预先在服务器中缓存所有数据,然后所有数据一并发给客户端

  Content-Encoding:Web服务器表明自己用了什么压缩方式(gzip、deflate)压缩响应中的对象

  Content-Language:服务器告知浏览器自己响应的对象语言

4. Miscellaneous头域

  Server:指明HTTP服务器的软件信息

  X-Powered-By:表明网站是用什么技术开发的

  X-AspNet-Version:如果网站是用Asp/Net开发的,这个header用来表明Asp/Net的版本

5. Transport头域

  connection:Keep—alive            TCP连接不会关闭

  connection:close                     一个Request完成后,TCP连接关闭

6. Location头域

  Location:用于重定向一个新的位置,包括新的URL地址

5. 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.

通过上面的截图,可以看到每个请求的前面都有一个小图标,不同的图标代表了不同的含义,整理如下:

  [转]https://www.cnblogs.com/Nick1994/p/8491631.html   感谢愿意分享的人,你是最棒的!

  •  请求发送到服务器
  •  从服务器下载响应结果
  •  请求在断点处被暂停
  •  响应在断点处被暂停
  •  请求使用HTTP HEAD 方法,响应没有body(内容)
  •  请求使用HTTP POST 方法
  •  请求使用HTTP CONNECT 方法;使用HTTPS协议建立连接通道
  •  响应是HTML格式
  •  响应是图片格式
  •  响应是脚本文件
  •  响应是CSS文件
  •  响应是XML文件
  •  响应是JSON文件
  •  响应是音频文件
  •  响应是视频文件
  •  响应是Silverlight applet
  •  响应是Flash applet
  •  响应是字体
  •  普通响应成功
  •  响应是HTTP/300,301,302,303,307转向
  •  响应是HTTP304(无变更): 使用被缓存的版本
  •  响应需要一个客户端凭证
  •  响应是一个Server错误
  •  会话被客户端、Fiddler或者Server终止

第三篇 Fiddler数据包分析的更多相关文章

  1. Fiddler抓取数据包分析案例

    案例:利用Fiddler抓取苏宁易购网站数据包分析 抓包软件:Fiddler4 请求名字:www.suning.com 详细内容: 一.了解数据包区域的字段含义 图1数据包区域 #:顺序号,按照抓包的 ...

  2. 《Wireshark数据包分析实战》 - http背后,tcp/ip抓包分析

    作为网络开发人员,使用fiddler无疑是最好的选择,方便易用功能强. 但是什么作为爱学习的同学,是不应该止步于http协议的,学习wireshark则可以满足这方面的需求.wireshark作为抓取 ...

  3. snmp数据包分析

    今天看了一下snmp数据包的报文格式,用wireshark抓了两个数据包来分析. 先说说snmp get-request的书报包格式吧,get-next-request,get-response,se ...

  4. firebug登陆之数据包分析

    登陆之数据包分析 工具: python-urllib2   |  firefox+firebug或者chrome,用浏览器打开登陆页面之后,按F12键会默认打开开发者工具或者启动firebug,点击n ...

  5. Wireshark数据包分析(一)——使用入门

    Wireshark简介: Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一.在SecTools安全社区里颇受欢迎,曾一度超越Metasploit.Nessus.Aircrack ...

  6. Wireshark工具抓包的数据包分析

    Wireshark(前称Ethereal)是一个网络封包分析软件.网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料. Wireshark使用WinPCAP作为接口,直接与网卡 ...

  7. 网络数据包分析 网卡Offload

    http://blog.nsfocus.net/network-packets-analysis-nic-offload/     对于网络安全来说,网络传输数据包的捕获和分析是个基础工作,绿盟科技研 ...

  8. Wireshark数据包分析入门

    Wireshark数据包分析(一)——使用入门   Wireshark简介: Wireshark是一款最流行和强大的开源数据包抓包与分析工具,没有之一.在SecTools安全社区里颇受欢迎,曾一度超越 ...

  9. WireShark数据包分析一:认识WireShark

    一.认识WireShark WireShark是一款抓包软件,官方网址:WireShark.org 官网如下图: 选择Download,在官网下载安装WireShark即可. WireShark可用来 ...

随机推荐

  1. HTML5之表单新增类型介绍

    1.html5的input标签的type类型新增介绍: 2.表单新增属性介绍: 3.代码示例: <!doctype html> <html> <head></ ...

  2. Node.js 笔记03

    一.buffer(缓存区) Node里面的buffer,是一个二进制数据容器,数据结构类似与数组,专门用于Node中数据的存放 ​ 1. buffer的基本使用 历史上的使用方式:const buf1 ...

  3. SQL Server笔记-语法

    1.USE <DatabaseName> //选择数据库 例:USE [master] //master是系统默认数据库 2.字段或表名与保留字或关键字重名时需要加. 3.COMPATIB ...

  4. Java的技术体系结构

    作为程序开发者,我们都想写出完美的代码,但世界上好像从来都没有过完美的代码,因为代码牵涉的内容很复杂,有程序设计语言.运行环境.数据结构以及算法等等,而开发者往往很难全面精通,再者写代码本来也就是一个 ...

  5. 解决model属性与系统重名

    .h .m + (NSDictionary *)replacedKeyFromPropertyName { return @{ @"detailId" : @"id&qu ...

  6. 自动计算UITableViewCell高度2(CGRect约束)

    1.先创建model .h #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface LBDNe ...

  7. 使用第三方《UITableView+FDTemplateLayoutCell》自动计算UITableViewCell高度(Masonry约束)

    直接上代码: 1:先自定义cell .h文件中 #import <UIKit/UIKit.h> #import "LBDNewMsgListModel.h" #impo ...

  8. Spring Boot学习笔记(二二) - 与Mybatis集成

    Mybatis集成 Spring Boot中的JPA部分默认是使用的hibernate,而如果想使用Mybatis的话就需要自己做一些配置.使用方式有两种,第一种是Mybatis官方提供的 mybat ...

  9. Layui上传文件以及数据表格

    layui对于一些前端小白来说,例如我,真的非常的好用,不用去花很多很多的心思在前端美化中,并且提高了很大的工作效率.所以建议一些觉得自己前端技术不是很强,但是想让前端美化一点的可以使用layui. ...

  10. JS小数运算失精度的问题

    JS因为是解释性语言,在运算中会有丢失精度的问题,这种现象多出现在浮点型运算的情况下. 例如 5.11 * 100  得到的结果是 511.00000000000006 这种情况尤其是在处理金额的时候 ...