發(fā)起一個ajax請求時,request header里面有三個屬性會涉及請求源信息转晰。前端可能用不到這些值龟糕,但是桐磁,后臺業(yè)務(wù)系統(tǒng)會比較關(guān)心它們,場景可能有:
- 處理跨域請求時讲岁,必須判斷來源請求方是否合法我擂;
- 后臺做重定向時,需要原地址信息缓艳;
作為前端校摩,了解三者的區(qū)別和使用場景,還是有很意義的阶淘。
先看圖:
1. Host
描述請求將被發(fā)送的目的地衙吩,包括,且僅僅包括域名和端口號溪窒。
在任何類型請求中坤塞,request都會包含此header信息。
2. Origin
用來說明請求從哪里發(fā)起的澈蚌,包括摹芙,且僅僅包括協(xié)議和域名。
這個參數(shù)一般只存在于CORS跨域請求中宛瞄,可以看到response有對應(yīng)的header:Access-Control-Allow-Origin
浮禾。
3. Referer
告知服務(wù)器請求的原始資源的URI,其用于所有類型的請求,并且包括:協(xié)議+域名+查詢參數(shù)(注意盈电,不包含錨點(diǎn)信息)蝴簇。
因?yàn)樵嫉腢RI中的查詢參數(shù)可能包含ID或密碼等敏感信息,如果寫入referer挣轨,則可能導(dǎo)致信息泄露军熏。