天天看點

origin,referer和host差別

發起一個ajax請求時,request header裡面有三個屬性會涉及請求源資訊。前端可能用不到這些值,但是,背景業務系統會比較關心它們,場景可能有:

處理跨域請求時,必須判斷來源請求方是否合法;

背景做重定向時,需要原位址資訊;

作為前端,了解三者的差別和使用場景,還是有很意義的。

先看圖:

origin,referer和host差別

Host

用戶端指定自己想通路的WEB伺服器的域名/IP 位址和端口号。

在任何類型請求中,request都會包含此header資訊。

Origin

用來說明請求從哪裡發起的,包括,且僅僅包括協定和域名。

這個參數一般隻存在于CORS跨域請求中,可以看到response有對應的header:Access-Control-Allow-Origin。

Referer

告知伺服器請求的原始資源的URI,其用于所有類型的請求,并且包括:協定+域名+查詢參數(注意,不包含錨點資訊)。

因為原始的URI中的查詢參數可能包含ID或密碼等敏感資訊,如果寫入referer,則可能導緻資訊洩露。

作者:娜姐聊前端

連結:https://www.jianshu.com/p/1f9c71850299

來源:簡書