额,这篇忘了是来自哪位作者的了。

whistle:1.14.6

这里以抓取浏览器数据包为例,分析抓取的数据。

Method:Connect,对应Host:Tunnel to意思是因为网络环境受限,客户端无法直接访问某些网络,所以只能通过代理服务器访问网络(客户端使用http connect请求代理服务器,代理服务器使用connect方法与目标服务器建立http tunnel),然后将内容转发给客户端,从宏观上看,客户端与服务器端就像建立了一条隧道一样。

GET:网址带参数。

POST:回车操作,提交。

比较常用的是

clear:清除所有数据包

record:记录抓包结果

Filter:对抓取的数据包进行过滤。

Overview:关于HTTP请求性能和其他数据分析,比如DNS解析消耗时间、请求时间、响应时间。

Composer:可以构建响应的请求,也就是修改请求,查看页面返回什么。

Inspectors:分为上下两个部分,上半部分是请求头部分,下半部分是响应头部分。

请求头的内容如下:
Host:请求连接的主机名;
User-Agent:告诉服务器,我本地浏览器支持哪些内核浏览器
Accept:可接受的文件类型;
Accept-Language:可接受的返回数据的语言种类;
Accept-Encoding:可接受的纯文本之外的内容编码的类型;
Content-Type:内容数据的类型(Mini Type);
Content-Length:传输的内容长度;
Connection:指定该次请求回应结束后,如何处理连接;
Proxy-Connection:
Cache-Control:指定请求和响应遵循的缓存机制;
Pragma:防止页面被缓存,Pargma只有一个用法, 例如: Pragma: no-cache
Location:用于重定向接收者到一个新URL地址;  

响应头的内容如下:
Accept-Ranges:
Cache-Control:指定请求和响应遵循的缓存机制;
Content-Type:内容数据的类型(Mini Type);
Date:表示发送HTTP消息的日期,即当前的GMT时间
Expires:内容数据被缓存的过期时间;
Last-Modified:服务器上保存内容的最后修订时间;
Server:指明HTTP服务器的软件信息;
Content-Length:传输的内容长度;
Content-Encoding:文档的编码方法,一般是压缩方式
Transfer-Encoding:用来改变报文格式
Age:表示HTTP接受请求操作响应的缓存时间;
(Status-Line):包括HTTP请求的状态码和HTTP版本信息; 
Connection:指定该次请求回应结束后,如何处理连接;
Content-Language:内容数据的语言种类;

请求方法有多种, 各个方法的解释如下:
GET请求获取Request-URI所标识的资源
POST在Request-URI所标识的资源后附加新的数据
HEAD请求获取由Request-URI所标识的资源的响应消息报头
PUT请求服务器存储一个资源, 并用Request-URI作为其标识
DELETE请求服务器删除Request-URI所标识的资源
TRACE请求服务器回送收到的请求信息,主要用于测试或诊断
CONNECT保留将来使用
OPTIONS请求查询服务器的性能,或者查询与资源相关的选项和需求
应用举例:
GET方法在浏览器的地址栏中输入网址的方式访问网页时, 浏览器采用GET方法向服务器获取资源,eg:GET /form.html HTTP/1.1 (CRLF)
POST方法要求被请求服务器接受附在请求后面的数据, 常用于提交表单。

响应头中的HTTP状态码对应信息:

状态代码与状态描述:
1XX:指示信息——表示请求已经接受,继续处理;
2XX:成功——表示请求已经被成功接收、理解、接受;
3XX:重定向——要完成请求必须进行更进一步的操作;
4XX:客户端错误——请求有语法错误或请求无法实现;
5XX:服务器端错误——服务器未能实现合法的请求。
常用状态码以及状态描述:
200:客户端请求成功
400:Bad Request 客户端请求有语法错误,不能被服务器所理解
401:Unauthorized 请求未经授权,这个状态吗必须和WWW-Authenticate报头域一起使用
403:Forbidden 服务器收到请求,但是拒绝提供服务
404:Not Found 请求资源不存在,如输入了错误的URL
500:Internal Server Error 服务器发生不可预期的错误
502:Server Unavailable 服务器当前不能处理客户端的请求,一段时间后可能回复正常

whistle抓包-数据包分析的更多相关文章

  1. Android移动网络如何抓取数据包

    1)下载tcpdump工具 tcpdump(dump the traffic on a network)是Linux中强大的网络数据采集分析工具之一,可以将网络中传送的数据包头完全截获下来提供分析.它 ...

  2. tcpdump 基于mac地址抓取数据包

    1.刚刚接触tcpdump时,常用tcpdump -i eth1 host 192.168.1.1 这个命令基于ip地址抓取数据包信息. tcpdump -i eth1(接口名称) host 192. ...

  3. 用wiershark抓dns数据包

    wireshark是非常好的抓包工具,捕获工具也很强大.比如说我只要抓dns数据包,其他数据包全部丢弃. 步骤如下: 选择菜单->捕获-捕获接口-输入-所选择接口的捕获过滤器:port 53 1 ...

  4. burpsuite 抓HTTPS数据包

    抓HTTPS数据包 导出保存为cer证书文件,导入到受信任的根证书颁发机构 设置代理服务器与burp中proxy listeners保持一致 设置目标url 抓包 可用repeater发请求

  5. Burp Suite抓https数据包

    本地环境JDK1.8Burp Suite 1.7.26 Firefox 59.0.2 一.burp介绍请自行谷歌,这里不过多介绍 二.配置HTTPS抓包方法[以Firefox为例]通常情况下burp默 ...

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

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

  7. 利用libpcap抓取数据包

    转载自:http://blog.csdn.net/tennysonsky/article/details/44811899 概述 libpcap是一个网络数据包捕获函数库,tcpdump就是以libp ...

  8. 使用Wireshark 抓取数据包

    Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一  ...

  9. WinPcap抓取数据包

    #WinPcap和Libpcap的最强大的特性之一,是拥有过滤数据包的引擎. 它提供了有效的方法去获取网络中的某些数据包,这也是WinPcap捕获机制中的一个组成部分. 用来过滤数据包的函数是#

随机推荐

  1. Ladp存储规则

    Ladp存储规则 区分名(DN,Distinguished Name) 和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶 ...

  2. Linux搭建SQL server服务器

    我们知道在Linux下安装服务有很多方式,最为简单的也就是yum安装,但是很多服务通过yum是无法安装的,如果想使用yum安装,需要指定yum安装仓库,我们今天需要安装MSQL Server,所以需要 ...

  3. FPGA学习过程(二)

    项目:数码管动态显示时间 首先建立一个计时一秒的模块,作为数码管显示的需要 module timer_s( input wire clk, input wire rst_n, output wire ...

  4. javascript(js)反转字符串

    网上看到的都是这个写法较多: str.split('').reverse().join(''); 这里发现一个ES6的写法也可以达到同样的效果: Array.from(str).reverse().j ...

  5. sql查询第10条到第20条数据

    select top(10) * from T1 where Id >= (select MAX(Id) from (select top(20) * from T1 order by Id) ...

  6. 一、vue基础语法(轻松入门vue)

    轻松入门vue系列 Vue基础语法 一.HelloWord 二.MVVM设计思想 三.指令 1. v-cloak 2. v-text 3. v-html 4. v-show 4. v-pre 5. v ...

  7. JFrame显示刷新

    1 import java.awt.BorderLayout; 2 import java.awt.Font; 3 import java.awt.event.ActionEvent; 4 impor ...

  8. js日期处理多少/月/天以前

    var date = new Date(); var year = date.getFullYear(); var month = (date.getMonth() + 1) > 10 ? da ...

  9. redis连接池 go-redis

    为什么使用连接池? 首先Redis也是一种数据库,它基于C/S模式,因此如果需要使用必须建立连接,稍微熟悉网络的人应该都清楚地知道为什么需要建立连接,C/S模式本身就是一种远程通信的交互模式,因此Re ...

  10. Linux云服务部署Spring boot项目

    Linux云服务部署Spring boot项目 背景: 之前经过两个周的时间,做了一个简单的博客网站,网址:点击进入,在本地可以正常使用以后,想着部署到服务器上,给大家伙看个乐呵,于是有了这篇部署文章 ...