前端面試—Http請求頭中Referer的含義和作用


前端面試—Http請求頭中Referer的含義和作用

博客說明

文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!

介紹

HTTP Referer是header的一部分,當瀏覽器向web服務器發送請求的時候,一般會帶上Referer,告訴服務器該網頁是從哪個頁面鏈接過來的,服務器因此可以獲得一些信息用於處理。

作用

防盜鏈

假如在www.google.com里有一個www.baidu.com鏈接,那么點擊進入這個www.baidu.com,它的header信息里就有:Referer=http://www.google.com

只允許我本身的網站訪問本身的圖片服務器,假如域是www.google.com,那么圖片服務器每次取到Referer來判斷一下域名是不是www.google.com,如果是就繼續訪問,不是就攔截。

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

防止惡意請求

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

空Referer

定義:Referer頭部的內容為空,或者,一個HTTP請求中根本不包含Referer頭部(一個請求並不是由鏈接觸發產生的)

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

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

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

防御CSRF

比對HTTP 請求的來源地址,如果Referer中的地址是安全可信任的地址,那么就放行

感謝

以及勤勞的自己,個人博客GitHub

微信公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM