一.請求頭
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