原文地址:https://www.sojson.com/blog/58.html
HTTP 請求頭部 referer
概述
referer 是 HTTP 請求頭部的一部分。當瀏覽器(或者模擬瀏覽器行為)向web 服務器發送請求的時候,頭信息里有包含 Referer 。Referer的的作用是指示一個請求是從哪里鏈接過來,那么當一個請求並不是由鏈接觸發產生的,那么自然也就不需要指定這個請求的鏈接來源,如:直接在瀏覽器的地址欄中輸入一個資源的URL地址,那么這種請求是不會包含 Referer 字段的,因為這是一個“憑空產生”的 HTTP 請求,並不是從一個地方鏈接過去的。服務器允許 Referer 為空,意味着服務器允許瀏覽器直接訪問。

注:
referer 的正確英語拼法是 referrer 。由於早期HTTP規范的拼寫錯誤,為了保持向后兼容就將錯就錯了。其它網絡技術的規范企圖修正此問題,使用正確拼法,所以目前拼法不統一。還有它第一個字母是大寫。
一、Referer
1.防盜鏈
Referer=https://www.sojson.com
注:設置 Referer 限制訪問資源的域名,資源服務器每次取到 Referer 來判斷一下是不限定的域名:https://www.sojson.com。如果是就繼續訪問,不是就攔截。
2.防止惡意請求。
比如SOJSON網站上,靜態請求是*.html結尾的,動態請求是*.shtml,那么由此可以這么用,所有的*.shtml請求,必須 Referer 為限定網站。
Referer=https://www.sojson.com
3、Referer

服務器可以拒絕空referer的請求

4、頁面添加Referer元素需要使用meta referrer標簽
1、None:絕不允許referrer data通過 標簽寫法:<meta name="referrer" content="none"> 2、None When Downgrade:發送referrer信息去安全的HTTPS站點,而非不穩定的HTTP站點。 標簽寫法:<meta name="referrer" content="none-when-downgrade"> 3、Origin Only: 發送協議、主機和端口(即子域)沒有一個完整的URL作為來源, 即https://moz.com/example.html只會發送https://moz.com 標簽寫法:<meta name="referrer" content="origin"> 4、Origin When Cross-Origin: 當傳origin-only來路信息發送給外部站點時,如果目標有相同的協議、主機和端口(即子域),無論它是HTTP或HTTPS,都將全部的URL作為Referrer發送出去。(注解:官方說明書上有一處排印錯誤,將來的版本應該是"origin-when-cross-origin") 標簽寫法:<meta name="referrer" content="origin-when-crossorigin"> 5、Unsafe URL: 總是將URL字串作為一個referrer通過。 注意:如果你的URL中存在任何敏感信息,這不是最安全的選擇。其中URL的片段、用戶名、密碼被自動剝去。 標簽寫法:<meta name="referrer" content="unsafe-url">
