古詩詞大全網 - 成語查詢 - http請求頭origin、referer和host區別

http請求頭origin、referer和host區別

描述請求將被發送的目的地,包括且僅僅包括域名和端口號。 HTTP/1.1 的所有請求報文中必須包含壹個Host頭字段,且只能設置壹個。

請求頭origin表明了請求來自於哪個站點。包括且僅僅包括協議、域名和端口,並不包含任何路徑信息。經常用於CORS請求或者POST請求,可以看到response有對應的header:Access-Control-Allow-Origin。

@CrossOrigin(origins=":80")

@RequestMapping(value = "list", method = RequestMethod.POST)

public String list(HttpServletRequest request, HttpServletResponse response) {

}

告知服務器請求的原始資源的URI,其用於所有類型的請求,並且包括協議、域名、路徑和查詢參數。

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

1)來源頁面采用的協議為表示本地文件的 "file" 或者 "data" URI;

2)當前請求頁面采用的是非安全協議,而來源頁面采用的是安全協議(HTTPS);

3)直接輸入網址或通過瀏覽器書簽訪問;

4)使用 JavaScript 的 Location.href 或者是 Location.replace();

5)使用html5中noreferrer;

6)使用iframe的hack寫法去除referer。

請求頭中referer與origin功能相似,但有如下幾點不同:

1、只有跨域請求,或者同域時發送post請求,才會攜帶origin請求頭,而referer不論何種情況下,只要瀏覽器能獲取到請求源都會攜帶,除了上面提到的幾種情況。

2、如果瀏覽器不能獲取請求源,那麽origin滿足上面情況也會攜帶,不過其值為null。referer則不同,瀏覽器如果不能獲取請求源,那麽請求頭中不會攜帶referer。

3、origin的值只包括協議、域名和端口,而erferer不但包括協議、域名、端口,還包括路徑和參數。