99偷拍视频精品区一区二,口述久久久久久久久久久久,国产精品夫妇激情啪发布,成人永久免费网站在线观看,国产精品高清免费在线,青青草在线观看视频观看,久久久久久国产一区,天天婷婷久久18禁,日韩动漫av在线播放直播

host、referer和origin的區別有哪些

這篇文章給大家介紹host、referer和origin的區別有哪些,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

創新互聯是專業的宜城網站建設公司,宜城接單;提供成都做網站、成都網站建設、成都外貿網站建設,網頁設計,網站設計,建網站,PHP網站建設等專業做網站服務;采用PHP框架,可快速的進行宜城網站開發網頁制作和功能擴展;專業做搜索引擎喜愛的網站,專業的做網站團隊,希望更多企業前來合作!

host比較容易理解,來看下MDN網站給的介紹:

Host 請求頭指明了服務器的域名(對于虛擬主機來說),以及(可選的)服務器監聽的TCP端口號。 

如果沒有給定端口號,會自動使用被請求服務的默認端口(比如請求一個HTTP的URL會自動使用80端口)。 

HTTP/1.1 的所有請求報文中必須包含一個Host頭字段。如果一個 HTTP/1.1 請求缺少 Host 頭字段或者設置了超過一個的 Host 頭字段,一個400(Bad Request)狀態碼會被返回。

從上面的文字中可以總結出如下信息:

1、host的值為客戶端請求的服務器的域名(或者ip)和端口

2、http/1.1中必須包含host請求頭,且只能設置一個;

那么host主要用在什么地方呢?

host用的最多的場景是:單臺服務器設置多個虛擬主機時。

舉個簡單的例子: 我在IP地址為127.0.0.1的服務器上,通過apache配置了兩個虛擬主機:a.com,b.com,這兩個域名通過DNS解析都會指向127.0.0.1,我在瀏覽器中訪問a.com的網站時,DNS將域名轉化為IP地址,此時可以通過客戶端請求頭的host信息判斷訪問的是服務器上對應的虛擬主機。

如圖:

host、referer和origin的區別有哪些

如果沒有host請求頭,客戶端的請求就不能標記出該訪問哪個虛擬主機了。

接著看一下MDN對referer的介紹:

Referer 首部包含了當前請求頁面的來源頁面的地址,即表示當前頁面是通過此來源頁面里的鏈接進入的。服務端一般使用 Referer 首部識別訪問來源,可能會以此進行統計分析、日志記錄以及緩存優化等。

需要注意的是 referer 實際上是 "referrer" 誤拼寫。

在以下兩種情況下,Referer 不會被發送: 

1.來源頁面采用的協議為表示本地文件的 "file" 或者 "data" URI; 

2.當前請求頁面采用的是非安全協議,而來源頁面采用的是安全協議(HTTPS)。

3.直接輸入網址或通過瀏覽器書簽訪問 

4.使用 JavaScript 的 Location.href 或者是 Location.replace()

5.使用html5中noreferrer 

<a href="/test/index.php?noreferer" rel="noreferrer" target="_blank">noreferrer</a>
<a href="/test/index.php?noreferer" rel="noreferrer" target="_blank">noreferrer</a>

6.使用 Referer Meta 標簽控制 referer 使用場景,具體參考如下文章:https://www.jb51.net/article/137982.htm

7.使用iframe的hack寫法去除referer。

這里給大家舉一個例子,百度的圖片防盜鏈:

html代碼如下:

host、referer和origin的區別有哪些

鼠標雙擊這張網頁直接打開,也就是file協議訪問,此時是不帶referer的,圖片是顯示的,如圖:

host、referer和origin的區別有哪些

network如圖,此時沒有referer請求頭:

host、referer和origin的區別有哪些

但是我將其發布到服務器上,用http://127.0.0.1/a2.html來訪問

圖片不顯示了,為什么呢?觀察請求頭

多了一個referer的請求頭,請求頭標識了訪問這張圖片請求的源頭,請求源頭為我的網站,百度圖片服務器根據這個請求頭判斷,然后將我攔截了。

那么如何破解盜鏈呢,常用的是用一個服務器程序作為代理爬蟲,服務器爬蟲可以自由設置請求頭了,還有就是利用iframe的hack寫法了。這種寫法類似xss,那什么是xss呢?這里先不說,下期討論。

iframe去除referer的寫法如下,看代碼:

host、referer和origin的區別有哪些

顯示結果如圖:

host、referer和origin的區別有哪些

再看network如圖:

host、referer和origin的區別有哪些

referer消失了。referer消失后,跳過了百度的防盜鏈。

最后是origin了,看一年MDN對其的介紹:

請求首部字段 Origin 指示了請求來自于哪個站點。該字段僅指示服務器名稱,并不包含任何路徑信息。該首部用于 CORS 請求或者 POST 請求。除了不包含路徑信息,該字段與 Referer 首部字段相似。

可以看到referer與origin功能相似,但是還是有幾點不同,仔細看上面的介紹,總結如下幾點:

1、只有跨域請求,或者同域時發送post請求,才會攜帶origin請求頭,而referer不論何種情況下,只要瀏覽器能獲取到請求源都會攜帶,除了上面提到的幾種情況。

2、如果瀏覽器不能獲取請求源,那么origin滿足上面情況也會攜帶,不過其值為null,如圖:

host、referer和origin的區別有哪些

這點與referer不同,瀏覽器如果不能獲取請求源,那么請求頭中不會攜帶referer。

3、origin的值只包括協議、域名和端口,而erferer不但包括協議、域名、端口還包括路徑,參數,注意不包括hash值。

關于host、referer和origin的區別有哪些就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享題目:host、referer和origin的區別有哪些
地址分享:http://www.yijiale78.com/article34/ihdcpe.html

成都網站建設公司_創新互聯,為您提供網站策劃面包屑導航關鍵詞優化外貿網站建設網站建設標簽優化

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

綿陽服務器托管