查询 webApi 时添加了 3 个新 headers,但它们来自哪里?

3 new headers added when querying a webApi but where did they come from?

在 fiddler 中捕获对网站的点击,希望在 c# 应用程序中自动执行流程。 Fiddler 捕获 2 个请求(OPTIONS 和 GET):

OPTIONS https://host... HTTP/1.1
Host: host
Connection: keep-alive
Accept: */*
Access-Control-Request-Method: GET
Access-Control-Request-Headers: pairm,pairx,pairz
Origin: https://host...
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.50
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-site
Sec-Fetch-Dest: empty
Referer: https://host...
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,en-US;q=0.8,pl;q=0.7

返回此响应:

HTTP/1.1 204 No Content
Server: nginx/1.16.1
Content-Type: text/html; charset=UTF-8
Connection: keep-alive
X-Powered-By: PHP/7.4.13
Cache-Control: no-cache, private
Date: Mon, 25 Jan 2021 13:58:03 GMT
Access-Control-Allow-Origin: *
Vary: Access-Control-Request-Method, Access-Control-Request-Headers
Access-Control-Allow-Methods: GET
Access-Control-Allow-Headers: pairm,pairx,pairz
Access-Control-Max-Age: 0

随后是另一个请求:

GET https://host... HTTP/1.1
Host: host
Connection: keep-alive
Accept: application/json, text/plain, */*
PairZ: 2537624327195356974404768858565322431647991274896813
PairM: 2267673572979313282937216167457434744448197714372250
PairX: 6431909992249094676623824191533524405911989986455913
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36 Edg/88.0.705.50
Origin: https://host...
Sec-Fetch-Site: same-site
Sec-Fetch-Mode: cors
Sec-Fetch-Dest: empty
Referer: https://host...
Accept-Encoding: gzip, deflate, br
Accept-Language: en-GB,en;q=0.9,en-US;q=0.8,pl;q=0.7

和响应:

HTTP/1.1 200 OK
Server: nginx/1.16.1
Content-Type: application/json
Connection: keep-alive
X-Powered-By: PHP/7.4.13
Cache-Control: no-cache, private
Date: Mon, 25 Jan 2021 13:58:03 GMT
Access-Control-Allow-Origin: *
Content-Length: 2114

{json}

html/js 中没有任何内容,没有 cookies,没有身份验证,也没有交换表单数据,我无法弄清楚这里使用什么机制来添加 PairZ、PairM 和 PairZ,它们的值从何而来来自.

文档中的任何信息(CORS 或缓存)都必须隐藏得很好,或者我可能只是瞎了眼,但我找不到任何工作流程来解释这 3 headers 是如何进入其中的。非常感谢任何 hints/help。

常规请求之前的OPTION请求是浏览器CORS机制的一部分。

Cross-origin 资源共享 (CORS) 是一种机制,允许从提供第一个资源的域之外的另一个域请求网页上的受限资源。

OPTION 请求是调用 预检请求 的过程的一部分 此请求假设在实际请求之前检查服务器 CORS 设置。 预检请求的响应决定了您是否有权执行真正的请求。

过程如下所示:

在您的情况下,您有自定义 headers 的 GET 请求。