淺析HTTP首部欄位
阿新 • • 發佈:2018-12-10
HTTP首部欄位是構成HTTP報文的重要組成部分,在客戶端和伺服器之間以HTTP協議進行通訊的過程中,無論是請求還是響應,它都能夠起到傳遞額外關鍵資訊的作用。
使用首部欄位是為了給瀏覽器和伺服器提供諸如報文大小、使用的語言、接收的字符集、認證資訊等內容。
HTTP首部欄位的結構
HTTP的首部欄位是由首部欄位名和欄位值組成的,中間以“:”進行分隔。
首部欄位名: 欄位值
例如在首部欄位中使用 Content-Type 這個欄位來表示報文主體物件型別:
Content-Type: text/html
另外,欄位值對應單個HTTP首部欄位可以有多個值:
Keep-Alive: timeout=15, max=100
4種HTTP首部欄位型別
HTTP首部欄位根據實際用途被分為以下四種類型:
- 通用首部欄位。請求和響應報文雙方都會使用的首部。
- 請求首部欄位。從客戶端向伺服器傳送請求報文時使用的首部。補充了請求的附加內容、客戶端資訊、響應內容相關優先性等資訊。
- 響應首部欄位。從伺服器向客戶端傳送響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容資訊。
- 實體首部欄位。針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間與實體有關的資訊。
HTTP/1.1 首部欄位一覽
1>通用首部欄位
2>請求首部欄位
3>響應首部欄位
4>實體首部欄位
End-to-end 首部和 Hop-by-hop 首部
HTTP首部欄位可以定義快取代理和非快取代理的行為,分為兩種型別:
1>端到端首部(End-to-end)
此類首部會轉發給請求/響應對應的最終接收物件,且必須儲存在由快取生成的響應中,並規定它必須被轉發。
2>逐跳首部(Hop-by-hop)
此類首部只對單次轉發有效,會因為通過快取或代理而不再轉發。HTTP/1.1和之後的版本中,如果需要使用此類首部,必須提供Connection首部欄位。
下面列舉了逐跳首部欄位:
- Connection
- Keep-Alive
- Proxy-Authenticate
- Proxy-Authorization
- Trailer
- TE
- Transfer-Encoding
- Upgrade