前端學習----header頭相關知識

一.請求頭


1.Host 


請求的服務器網址

描述請求將被髮送的目的地,包括,且僅僅包括域名和端口號。
在任何類型請求中,request都會包含此header信息。

服務器通過host來知曉訪問哪個網址

虛擬主機(virtual hosting)即共享主機(shared web hosting),可以利用虛擬技術把一臺完整的服務器分成若干個主機,因此可以在單一服務器上運行多個網站或服務。

舉一個簡單的例子:有一臺 ip 地址爲 61.135.169.125 的服務器,在這臺服務器桑部署着谷歌、百度、淘寶的網站。爲什麼我們訪問 https://www.google.com 時,看到的是 Google 的首頁而不是百度或者淘寶的首頁?原因就是 Host 請求頭決定着訪問哪個虛擬主機。

  

         
2.Connection         keep-alive

 

瀏覽器中不設置Connection,會默認是keep-alive(長連接)
關於 Connection 的相關信息
https://blog.csdn.net/mangoyiy/article/details/80941816


3.Origin


用來說明請求從哪裏發起的,包括,且僅僅包括協議和域名。
這個參數一般只存在於CORS跨域請求中,可以看到response有對應的header:Access-Control-Allow-Origin。

該文章裏提到關於  Origin 用來預防cfrs攻擊
https://blog.csdn.net/xiejin2008/article/details/84612656?depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1&utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1


  這裏提到了什麼是csrf攻擊


https://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html


4.refere

        1.防盜鏈
         比如我只允許我自己的網站訪問我自己的圖片服務器
 
         2.防止惡意請求。

         相關的例子:
        https://blog.csdn.net/weixin_34128839/article/details/90104333


關於 Origin和 refere的對比

origin主要是用來說明最初請求是從哪裏發起的;
origin只用於Post請求,而Referer則用於所有類型的請求;
origin的方式比Referer安全。


5.User-Agent         


Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36");

簡單來講,就是訪問來源的瀏覽器版本等信息

Mozilla/5.0  


Mozilla/5.0
由於歷史上的瀏覽器大戰,當時想獲得圖文並茂的網頁,就必須宣稱自己是 Mozilla 瀏覽器。此事導致如今User-Agent裏通常都帶有Mozilla字樣,出於對歷史的尊重,大家都會默認填寫該部分。

Windows NT 10.0是指我使用的操作系統的版本

Win64; x64是指我的操作系統是64位的

AppleWebKit/537.36 (KHTML, like Gecko)                   引擎版本

Chrome/70.0.3538.77 Safari/537.36     瀏覽器版本

相關博客
https://www.jianshu.com/p/c5cf6a1967d1


6.Accept-Encoding         gzip, deflate, br Accept-Language    zh-CN,zh;q=0.9


Accept-Encoding請求的 HTTP 標頭通告其內容編碼,通常是一個壓縮算法中,客戶端是能夠理解的。使用內容協商,

服務器選擇其中一個提議,使用它並通過Content-Encoding響應頭向客戶端通知其選擇。

gzip使用 Lempel-Ziv 編碼( LZ77 )的壓縮格式,帶有32位 CRC 。

compress使用 Lempel-Ziv-Welch( LZW )算法的壓縮格式。

deflate使用 zlib 結構的壓縮格式,以及 deflate 壓縮算法。

br使用 Brotli 算法的壓縮格式。

identity指示身份功能(即不壓縮,也不修改)。即使不存在,該值始終被認爲是可以接受的。

*匹配尚未在標題中列出的任何內容編碼。如果標題不存在,這是默認值。這並不意味着支持任何算法; 只是表示沒有偏好。

;q=( q 值加權)任何值都按照稱爲權重的相對質量值的優先順序排列

7.Content-Type    application/json;charset=utf-8

Content-Type(內容類型),一般是指網頁中存在的 Content-Type,用於定義網絡文件的類型和網頁的編碼,決定瀏覽器將以什麼形式、什麼編碼讀取這個文件,這就是經常看到一些 PHP 網頁點擊的結果卻是下載一個文件或一張圖片的原因。

Content-Type 標頭告訴客戶端實際返回的內容的內容類型。

語法格式:

ext/html : HTML格式

text/plain :純文本格式

text/xml : XML格式

image/gif :gif圖片格式

image/jpeg :jpg圖片格式

image/png:png圖片格式

application/xhtml+xml :XHTML格式

application/xml: XML數據格式

application/atom+xml :Atom XML聚合格式

application/json: JSON數據格式

application/pdf:pdf格式

application/msword : Word文檔格式

application/octet-stream : 二進制流數據(如常見的文件下載)

application/x-www-form-urlencoded : <form encType=””>中默認的encType,form表單數據被編碼爲key/value格式發送到服務器(表單默認的提交數據的格式

外一種常見的媒體格式是上傳文件之時使用的:

multipart/form-data : 需要在表單中進行文件上傳時,就需要使用該格式

8.Accept      application/json, text/plain, */*

指定客戶端能夠接收的內容類型

9.Cache-Control   no-cache

相關的緩存策略
https://blog.csdn.net/u012375924/article/details/82806617

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