古詩詞大全網 - 成語經典 - HTTP request header:host, referer, origin的區別

HTTP request header:host, referer, origin的區別

請求頭指明了請求將要發送到的服務器主機名和端口號。

如果沒有包含端口號,會自動使用被請求服務的默認端口(比如HTTPS URL使用443端口,HTTP URL使用80端口)。

所有HTTP/1.1 請求報文中必須包含壹個 Host 頭字段。對於缺少 Host 頭或者含有超過壹個 Host 頭的HTTP/1.1 請求,可能會收到 400 (Bad Request)狀態碼。

例如:Host: developer.cdn.mozilla.net

指定要訪問的服務器主機名和端口號

Referer 請求頭包含了當前請求頁面的來源頁面的地址,即表示當前頁面是通過此來源頁面裏的鏈接進入的。服務端壹般使用 Referer 請求頭識別訪問來源,可能會以此進行統計分析、日誌記錄以及緩存優化等。

需要註意的是 referer 實際上是 "referrer" 誤拼寫。參見 HTTP referer on Wikipedia (HTTP referer 在維基百科上的條目)來獲取更詳細的信息。

Referer 請求頭可能暴露用戶的瀏覽歷史,涉及到用戶的隱私問題。

在以下兩種情況下, Referer 不會被發送:

例如:

請求首部字段 Origin 指示了請求來自於哪個站點。該字段僅指示服務器名稱,並不包含任何路徑信息。該首部用於 CORS 請求或者 POST 請求(MDN中這樣寫,但是我試了patch/delete方法也會發送origin)。除了不包含路徑信息,該字段與 Referer 首部字段相似。

例如:Origin: /blog/2016/04/cors.html