6.1 標題類型

http請求頭實際上是http客戶端和http服務器的服務信息。但這很重要,如果你根本不了解它們,它往往會跑偏。所以至少閱讀一下它們。

所有的 http 標頭都可以分為 4 個主要組:

# 標題類型 描述 筆記
1個 通用標題 通用標題 用於請求和響應
2個 請求標頭 請求標頭 僅在請求中使用
3個 響應頭 響應頭 僅用於響應
4個 實體標題 實體標題 伴隨每個消息實體

6.2 用戶代理

最重要和最受歡迎的標頭是User-Agent。這是一個特殊的字符串,描述了哪個客戶端正在向服務器發出請求。這是客戶的名字。

服務器通常會根據請求者稍微調整其響應。例如,如果從請求中可以明確請求來自手機瀏覽器,那麼可以給它一個移動版的 HTML 頁面。

垃圾郵件機器人、下載管理器和一些瀏覽器發送虛假的用戶代理字符串來偽裝成合法客戶的情況並不少見。這種情況稱為用戶代理欺騙或用戶代理欺騙。

例如,我的用戶代理現在看起來像這樣:

Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0

它包含有關瀏覽器、操作系統和瀏覽器的 Web 引擎的信息。

6.3 內容類型

第二個最受歡迎的標頭是Content-Type。它用於確定服務器正在服務的資源的 MIME 類型。

即使在互聯網誕生之初,為了方便起見,傳輸的媒體內容類型也已標準化。它們被稱為Internet Media Types或簡稱MimeTypes。它們分為 9 類:

  • 應用
  • 聲音的
  • 例子
  • 圖像
  • 信息
  • 模型
  • 多部分
  • 文本
  • 視頻

例子:

類別 類型 描述
聲音的 音頻/mp4 mp4 格式的音頻文件
音頻/aac AAC 音頻文件
圖像 圖片/gif gif圖片
圖片/jpeg jpeg圖片
圖片/png 圖片PNG
文本 文字/CSS CSS文件
文本/html HTML文件
視頻 視頻/mpeg mpeg 格式的視頻文件
視頻/webm webm格式的視頻文件
視頻/3gpp 3gpp格式的視頻文件
應用 應用程序/x-www-form-urlencoded 編碼數據
應用程序/郵編 壓縮包
應用程序/javascript JavaScript
應用程序/xml XML

通常服務器知道它提供的是什麼數據。但是,如果您使用自己的代碼生成服務器響應,則需要指定服務器的響應類型 (Content-Type)。

6.4 內容長度

此標頭指定服務器響應的長度。如果以簡單的方式,則為給定文件的大小。您不需要手動設置此選項。雖然查看服務器給出的內容可能很有用,但如果由於某種原因沒有得到全部答案。

6.5 接受編碼

有了這個頭,客戶端可以向服務器表明它支持各種內容壓縮算法。這樣,服務端可以先將內容歸檔,比如用zip壓縮包,然後發送給客戶端,客戶端就可以正確的還原出原來的內容。

存檔的優點是文件越小,傳輸速度越快。存檔的缺點 - 客戶端和服務器上的額外負載。存檔在傳輸大文件時有意義,而在傳輸小文件時通常沒有意義。

這種標頭的示例:

Accept-Encoding: deflate, gzip;q=1.0, *;q=0.5

支持的數據壓縮算法在哪裡,deflate表示壓縮程度。gzipq