http請求頭中Referer的含義和作用

版權所屬:SO JSON在線解析

此文原文地址:https://www.sojson.com/blog/58.html

轉載時必須以鏈接形式註明原始出處及本聲明。

此文轉載地址:https://blog.csdn.net/shenqueying/article/details/79426884

 

Referer  是  HTTP  請求header 的一部分,當瀏覽器(或者模擬瀏覽器行爲)向web 服務器發送請求的時候,頭信息裏有包含  Referer  。比如我在www.google.com 裏有一個www.baidu.com 鏈接,那麼點擊這個www.baidu.com ,它的header 信息裏就有:

    Referer=http://www.google.com

由此可以看出來吧。它就是表示一個來源。看下圖的一個請求的 Referer  信息。

 

這裏有一個小問題要說明下。

Referer  的正確英語拼法是referrer 。由於早期HTTP規範的拼寫錯誤,爲了保持向後兼容就將錯就錯了。其它網絡技術的規範企圖修正此問題,使用正確拼法,所以目前拼法不統一。還有它第一個字母是大寫。


 

Referer的作用?

1.防盜鏈。

剛剛前面有提到一個小 Demo  

我在www.google.com裏有一個www.baidu.com鏈接,那麼點擊這個www.baidu.com,它的header信息裏就有:

Referer=http://www.google.com

那麼可以利用這個來防止盜鏈了,比如我只允許我自己的網站訪問我自己的圖片服務器,那我的域名是www.google.com,那麼圖片服務器每次取到Referer來判斷一下是不是我自己的域名www.google.com,如果是就繼續訪問,不是就攔截。

這是不是就達到防盜鏈的效果了?

將這個http請求發給服務器後,如果服務器要求必須是某個地址或者某幾個地址才能訪問,而你發送的referer不符合他的要求,就會攔截或者跳轉到他要求的地址,然後再通過這個地址進行訪問。

2.防止惡意請求。

比如靜態請求是*.html結尾的,動態請求是*.shtml,那麼由此可以這麼用,所有的*.shtml請求,必須 Referer  爲我自己的網站。

Referer=http://www.google.com

空Referer是怎麼回事?什麼情況下會出現Referer?

首先,我們對空 Referer  的定義爲, Referer  頭部的內容爲空,或者,一個 HTTP  請求中根本不包含 Referer  頭部。

那麼什麼時候 HTTP  請求會不包含 Referer  字段呢?根據Referer的定義,它的作用是指示一個請求是從哪裏鏈接過來,那麼當一個請求並不是由鏈接觸發產生的,那麼自然也就不需要指定這個請求的鏈接來源。

比如,直接在瀏覽器的地址欄中輸入一個資源的URL地址,那麼這種請求是不會包含 Referer  字段的,因爲這是一個“憑空產生”的 HTTP  請求,並不是從一個地方鏈接過去的。

那麼在防盜鏈設置中,允許空Referer和不允許空Referer有什麼區別?

允許 Referer  爲空,意味着你允許比如瀏覽器直接訪問,就是空。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章