fiddlr整理(1)

本文详细介绍了HTTP请求的基本要素,包括GET和POST请求的区别,Cookie和Session的作用。还深入讲解了请求头的重要字段,如Accept、User-Agent、Connection等,并解释了响应状态码和HTTP协议的不同类别。此外,还提到了Fiddler工具的使用,以及如何处理HTTPS抓包问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

请求与相应基本要素

请求(request)分类

Get请求:获取数据(从服务器获取数据)

          网址中含?的请求是get请求。

POST请求:提交数据(提交数据给服务器)

Cookie和session作用:用户在一段时间不使用网站,再次访问,之前的信息依然存在。

Cookie:服务器在计算机上存储的信息。

Cookie的目的就是提供有关您访问网站的信息,在随后的访问服务器使用。

Cookie是有有效时间的。

请求术语

(1)Accept  接收数据类型     */* 可接受所有类型

(2)Accept-Language 接受语言    zh-CN 接受中文   en-US 美国英文

(3)User-Agent(UA 用户代理)  当前操作系统和浏览器内核版本   

(4)Accept-Encoding 浏览器支持的编码类型(压缩方式)支持compress 和gzip类型。

gzip,deflate  

gzip是一种数据格式,默认且目前仅使用deflate算法压缩data部分;

deflate是一种压缩算法,是huffman编码的一种加强。

(5)Connection  连接情况  

Keep-Alive 完成本次请求后保持TCP连接不释放

Close  完成请求直接关闭

(6)referer 发起请求源地址(追踪从哪个网站访问到本网站)

(7)host:主机地址或域名。

(8)protocol:这个是协议类型,如http、https

(9)url:请求的路径

(10)body:该条请求产生的数据大小

(11)caching:缓存相关HTTP 1.1: 引入了Cache-Control响应头参数以给站长们更多控制网站内容的权力,同时弥补了Expires的局限.

max-age:设置缓存最大的有效时间(比如:60s).

s-maxage:类似于max-age,但是它只用于公享缓存.

Public:响应会被缓存,并且在多用户间共享。正常情况, 如果要求 HTTP 认证,响应会自动设置为 private.

Private:响应只能够作为私有的缓存,不能再用户间共享。

no-cache:响应不会被缓存,而是实时向服务器端请求资源。既可以保障缓存的效率,又能保证安全。

no-store:在任何条件下,响应都不会被缓存,并且不会被写入到客户端的磁盘里,这也是基于安全考虑的某些敏感的响应才会使用这个。

must-revalidate:响应在特定条件下会被重用,以满足接下来的请求,但是它必须到服务器端去验证它是不是仍然是最新的。

proxy-revalidate:类似于 must-revalidate,但不适用于代理缓存.

(12)content-type:请求响应的类型(application/x-www-form-urlencoded: form:表单; application/json: JSON字符串;multipart/form-data:常见的POST数据提交方式,一般在上传文件时使用.使用表单上传文件时必须让form的enctype等于这个值; text/xml: XML格式;text/html:HTML格式; text/plain: 纯文本格式; image/gif: gif图片格式

(13)process:客户端类型

Response(响应) 正常响应和异常响应。

HTTP协议通过响应的状态码来定义。

--1xx   信息响应类,表示接收到请求并且继续处理

--2xx  一般是服务器接受成功,对数据进行处理   200,请求ok;

-   --3xx  重定向   针对请求,服务器可执行多种操作。服务器可根据申请人 (user-agent) 选择一项操作,或提供操作列表供申请人选择。

--4xx  一般是请求地址有问题    404 ,找不到服务器  403 ,没有权限找到服务器

--5xx  一般是服务器本身的错误

Fiddle应用

参考链接: https://www.cnblogs.com/miantest/p/7289694.html

             https://www.jianshu.com/p/690eb9bebe3c

          https://www.cnblogs.com/yoyoketang/tag/fiddler/

  1. 开始使用时,确保确保Capture Traffic是开启的(安装后是默认开启的),勾选File->Capture Traffic,也可以直接点击Fiddler界面左下角的图标开启和关闭抓包。

  1. 左侧区域所有字段含义:

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

Result:HTTP状态码  200,请求ok; 502,服务器收到无效响应

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

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

URL:请求资源的位置

Body:请求大小

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

Content-Type:请求响应的类型(application/x-www-form-urlencoded:form:表单; application/json: JSON字符串;multipart/form-data:常见的POST数据提交方式,一般在上传文件时使用.使用表单上传文件时必须让form的enctype等于这个值; text/xml: XML格式;text/html:HTML格式; text/plain: 纯文本格式; image/gif: gif图片格式)

Process:发送此请求的进程ID

Comments:备注

Custom:自定义值

3.右侧区字段域含义

Ps:每个Fiddler抓取到的数据包都会在该列表中展示,点击具体的一条数据包可以在右侧菜单点击Insepector查看详细内容。主要分为请求(即客户端发出的数据)和响应(服务器返回的数据)两部分。

安装常见问题:

Fiddler对https抓包时,提示"HTTPS decryption is disabled."

原因: 没有启用 https 解密

解决方法1:

(1)设置抓取PC端浏览器的HTTPS协议包:

点击报错处或者【Tools】->【Options】->【HTTPS】,勾上如下图的选项

https://upload-images.jianshu.io/upload_images/4789908-2c6086b9fdaded13.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/670

出现下面的弹框选择“yes”信任,出现安装证书选择yes

https://upload-images.jianshu.io/upload_images/4789908-3a15ba31866733fe.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/456

以百度为例讲解右侧字段:

用fiddler抓取百度:启动在fiddler的情况下,打开百度网页(数据太多可以按cril+a全选,再按delete键清空左侧数据).然后在fiddler左侧区域找到host为baidu.com的网址(可以检查输入框元素的值是否为fiddler,判断是否选择正确),选中该网址.

Header(请求头)页面元素(Inspector模块): 包括Request和Response两个部分.Request是客户端发出去的数据,Response是服务端返回过来的数据,这两块区域功能差不多

HTTP Request Header部分

Get请求:可以再最前面查看时get还是post请求

协议:HTTP/1.1:

1.1版本协议和1.0版本协议区别

HTTP/1.0协议使用非持久连接,即在非持久连接下,一个tcp连接只传输一个Web对象,;HTTP/1.1默认使用持久连接(然而,HTTP/1.1协议的客户机和服务器可以配置成使用非持久连接)。

Client 头域

Accept:浏览器端能接受的数据类型,包括text/html,application/xhtml+xml, image/jxr,*/*(所有类型)                        

Accept-Encoding:压缩方法(编码类型),包括gzip, deflate,

Accept-Language: 语言类型(zh-CN:中文)                                                                    

User-Agent: 客户端操作系统和浏览器内核版本(Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko )

X-Requested-With: XMLHttpRequest(以用来判断客户端的请求是Ajax请求还是还是传统请求,两种请求在请求的Header不同,Ajax 异步请求比传统的同步请求多了一个头参数.'xmlhttprequest' 表示ajax请求)

COOKIE头域:最重要的header,将Cookie的值发送给HTTP服务器

Miscellaneous头域: 提供了request的上下文信息的服务器,告诉服务器我是从哪个链接过来的。有些统计数据需要用到此头域。比如从我的主页上链接到统计服务器那里,该服务器就能够从HTTP Referer中统计出每天有多少用户点击我主页上的链接访问他的网站。

Transport 头域:

Connection:当网页打开完成后,客户端和服务器之间用于传输HTTP数据的TCP连接是否关闭。keep-alive表示不会关闭,客户端再次访问这个服务器上的网页,会继续使用这一条已经建立的连接;close表示关闭,客户端再次访问这个服务器上的网页,需要重新建立连接。

HOST:主机名或域名,若没有指定端口,表示使用默认端口80.

 

HTTP Response Header:继续以百度为例

协议:HTTP/1.1

状态码:200

Cache头域:

Date: Wed, 03 Apr 2019 02:35:12 GMT:生成消息的具体时间和日期

Vary: Accept-Encoding: 告诉代理服务器缓存两种版本的资源:压缩和非压缩,保障数据传播正确性

Cookie/Login 头域:把cookie发送到客户端

Entity头域:

Content-Encoding: gzip    压缩方式

Content-Length: 78        正文长度

Content-Type: text/html   响应类型(text/html: HTML格式)

Miscellaneous 头域:指明HTTP服务器的软件信息

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

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

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

Security头域:

Strict-Transport-Security: max-age=172800    

HTTP Strict Transport Security(通常简称为HSTS)是一个安全功能,它告诉浏览器只能通过HTTPS访问当前资源,而不是HTTP

max-age=<expire-time>:设置在浏览器收到这个请求后的<expire-time>秒的时间内凡是访问这个域名下的请求都使用

includeSubDomains: 如果这个可选的参数被指定,那么说明此规则也适用于该网站的所有子域名

Inspector模块其它部分

TextView:显示请求或响应的数据。

WebForms:请求部分以表单形式显示所有的请求参数和参数值;响应部分与TextView内容是一样的。

Auth:显示认证信息,如Authorization

Cookies:显示所有cookies

Raw:显示Headers和Body数据

JSON:若请求或响应数据是json格式,以json形式显示请求或响应内容

XML:若请求或响应数据是xml格式,以xml形式显示请求或响应内容

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值