靜態資源(圖片/音樂等)Provisional headers are shown

今天遇到一個問題:

在html頁面裏,<a href=url>存儲在百度的圖片放到網頁裏打不開,是403.

報錯:Provisional headers are shown

這個錯誤我見過多次,但是每次原因都不一樣,是比較坑壁的錯誤提示。

我先單獨將圖片url拉出來,放到瀏覽器地址欄裏,發現圖片是可以顯示的。

那麼就可以確定是請求頭的問題了。

於是使用postman一步步替換請求頭,看是哪個請求頭讓圖片無法顯示。

最終定位到了

Referer:http://localhost:9030/front/art/sfz/findInfo.html?id=134

是Referer引起的問題。

 

Referer是http的一個規範,它的值是當前頁面url,它在某些情況下(比如靜態資源訪問,比如超鏈接)默認會攜帶着參數去請求資源,目的是向服務器表名我的身份,我從哪裏來請求的。

有的服務器不希望自己的資源被其他網站外鏈,就會校驗Referer,如果不是自己家的就攔截掉。

有的請求者不希望暴露自己的隱私Referer,或者想定製Referer,那麼便可以修改。

有一個標籤屬性就可以用的到,rel="noreferrer",這個屬性只有<a><form><area>三個纔有。如果加入這個屬性,就不會再攜帶Referer了。但這個只是單個標籤,你可以詳細瞭解Referer-Policy這個對象以及策略。

最後附上讓整個頁面都不攜帶referer方法:

<meta name="referrer" content="no-referrer">

 

關於referer的詳細博客:http://www.ruanyifeng.com/blog/2019/06/http-referer.html

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