對http請求頭詳細探究(request head)


之前面試的時候很多人會問我有關http請求頭字段的意思,有些問的特別的偏,但明明實際很少用。問的我一愣一愣的,我就打算用這篇文章好好研究一下。

請求頭主要表達的是客戶端,也就是瀏覽器

具體來說http請求,分為三部分:請求行,請求頭, 請求體。

下面具體說的請求頭部分。

如圖

Accept:表示瀏覽器支持的 MIME 類型。

輸入值的example:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,/;q=0.8

表示客戶端支持的數據格式,或者說客戶端“希望”接受到的內容類型。但不一定接收到相應的值。

所以啥是MIME類型?MIME (Multipurpose Internet Mail Extensions) 是描述消息內容類型的因特網標准。

Accept-Encoding:表示瀏覽器解碼方式。

對於我們主動發起的ajax請求,一般數據量較少,不需要設置該字段。

Accept-Language:表示客戶端接受的語言格式。

例子:zh-CN,zh;q=0.9 

那個0.9代表的是zh的權重。

話說做不同語言的網站可以跟后端用這個字段配合,但我看見有人寫 一般不推薦這種方法。

Connection: keep-alive , 開啟HTTP持久連接

如果每次請求圖片等的時候,斷開tcp連接。下一個請求在連接tcp連接,就會造成對帶寬的過多消耗。

如果不設置,就是默認keep-alive(長連接)

Cookie:表示服務端給客戶端傳的http請求狀態。

因為Http是無狀態協議,無法感知到上一次請求狀態,所以產生了cookie。

后端可以操作這個cookie,並直接種到我們的瀏覽器中。

服務端通過 set-cookie這個響應頭來向客戶端中寫入 Cookie 信息。比如說我們在做登陸信息的時候,可以直接取出來用。

DNT:(DNot Track)表明了用戶對於網站追蹤的偏好。

0代表願意被追蹤。

1代表不願意被追蹤。

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

HTTP/1.1中必須要指明Host,如果沒指明,或者指明多個,或返回404狀態。

Referer:表示請求的上一個頁面是什么。

我看其他的文章里有寫,這個字段可以用來做訪問統計。還可以做防盜鏈,比如你從其他站點引用了qq空間的圖是現實不了的,就是通過這個字段來判定的。

User-Agent:

表示首部包含了一個特征字符串,用來讓網絡協議的對端來識別發起請求的用戶代理軟件的應用類型、操作系統、軟件開發商以及版本號。

這個讓我想起了js中,會用window.navigator.userAgent 來判斷什么瀏覽器和手機系統版本號。

 

多加幾個圖里沒有的字段,哈哈哈

 

Access-Control-Request-Method:請求方法,比如post get delete 等。

 

暫時先這樣,后續還會改。

 


免責聲明!

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



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