簡體   English   中英

查詢 webApi 時添加了 3 個新標頭,但它們來自哪里?

[英]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 個標頭是如何進入那里的。 非常感謝任何提示/幫助。

常規請求之前的 OPTION 請求是瀏覽器 CORS 機制的一部分。

跨域資源共享 (CORS) 是一種機制,它允許從提供第一個資源的域之外的另一個域請求 web 頁面上的受限資源。

而 OPTION 請求是此過程的一部分,稱為預檢請求。此請求假設在實際請求之前檢查服務器 CORS 設置。 預檢請求的響應確定您有權執行實際請求的天氣。

該過程如下所示:

在此處輸入圖像描述

在您的情況下,您有帶有自定義標頭的 GET 請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM