第207天 HTTP協議頭欄位詳解大全

2021-09-02 01:48:46 字數 1810 閱讀 2280

本篇重點介紹一下http常用的header

http header非常之多,很少有人能完全分清這些header到底是幹什麼的。鑑於rfc檔案規範艱深晦澀難懂,本文對協議規範中列出的http header進行了梳理,用通俗的語言進行表達,便於讀者吃透http協議。

表示客戶端期望伺服器返回的**格式。客戶端期望的資源型別伺服器可能沒有,所以客戶端會期望多種型別,並且設定優先順序,伺服器根據優先順序尋找相應的資源返回給客戶端。

1 # 注意:先逗號分割型別,再分號分割屬性

2 accept: audio/*; q=0.2, audio/basic

表示audio/basic型別的資源優先,如果沒有,就隨便其它什麼格式的audio資源都可以。q的取值範圍是(0-1],其具體值並沒有意義,它僅用來排序優先順序,如果沒有q,預設q=1,也就是最高優先順序。

表示客戶端期望伺服器返回的內容的編碼格式。它同accept頭一樣,也可以指定多個編碼,以q值代表優先順序。

1 # 注意:先逗號分割型別,再分號分割屬性

2 accept-charset: utf8, gbk; q=0.6

表示utf8編碼優先,如果不行,就拿gbk編碼返回.

content-type是伺服器向客戶端傳送的頭,代表內容的**型別和編碼格式,是對accept頭和accept-charset頭的統一應答。

1 content-type: text/html; charset=utf8
表示返回的body是個html文字,編碼為utf8

表示客戶端期望伺服器返回的內容的語言。很多大型網際網路公司是全球化的,它的技術文件一般有有多種語言,通過這個字段可以實現文件的本地化,對國內使用者呈現簡體中文文件,對英語系使用者呈現英文文件。

accept-language:zh-cn,en-us;q=0.8,zh-tw;q=0.6
表示大陸簡體中文優先,其次英語,再其次台灣正體中文

這個頭欄位內容是對accept-language的應答。伺服器通過此欄位告知客戶端返回的body資訊的語言是什麼。

表示傳輸的請求/響應的body的長度。get請求因為沒有body,所以不需要這個頭。攜帶body的並且可以提前知道body長度的請求/響應必須帶上這個字段,以便對方可以方便的分辨出報文的邊界,也就是body資料何時結束。如果body太大,需要邊計算邊傳輸,不到最後計算結束是無法知道整個body大小的,這個時候可以使用http分塊傳輸,這個時候也是不需要content-length欄位的。

當客戶端請求的資源在伺服器有多個位址時,伺服器可以通過content-location字段告知客戶端其它的可選位址。這個字段比較少見。

在header中提供這個資訊是用來做body內容校驗。它表示body資訊被md5演算法處理後的base64字串。這個欄位也比較少見。因為校驗機制在tcp層已經有實現了,再來一層校驗並沒有多大意義。另外資源的md5值往往用來放在後面的etag頭資訊中作為資源的唯一標識來使用。

第207天 HTTP協議頭欄位詳解大全

本篇重點介紹一下http常用的header http header非常之多,很少有人能完全分清這些header到底是幹什麼的。鑑於rfc檔案規範艱深晦澀難懂,本文對協議規範中列出的http header進行了梳理,用通俗的語言進行表達,便於讀者吃透http協議。表示客戶端期望伺服器返回的 格式。客戶...

HTTP協議頭欄位詳解大全

http協議頭欄位詳解大全 1 accept 表示客戶端期望伺服器返回的 格式。客戶端期望的資源型別伺服器可能沒有,所以客戶端會期望多種型別,並且設定優先順序,伺服器根據優先順序尋找相應的資源返回給客戶端。1 注意 先逗號分割型別,再分號分割屬性 2 accept audio q 0.2,audio...

HTTP頭字段大總結。

1 accept 告訴web伺服器自己接受什麼介質型別,表示任何型別,type 表示該型別下的所有子型別,type sub type。2 accept charset 瀏覽器申明自己接收的字符集 accept encoding 瀏覽器申明自己接收的編碼方法,通常指定壓縮方法,是否支援壓縮,支援什麼壓...