圖解HTTP學習記錄(六)
阿新 • • 發佈:2018-11-19
HTTP 首部
HTTP報文首部
HTTP請求報文
在請求中,HTTP 報文由方法、URI、HTTP 版本、HTTP 首部欄位等部分構成
HTTP響應報文
在響應中,HTTP 報文由 HTTP 版本、狀態碼(數字和原因短語)、HTTP 首部欄位 3 部分構成。
HTTP首部欄位
HTTP首部欄位結構
HTTP 首部欄位是由首部欄位名和欄位值構成的,中間用冒號“:” 分隔。
首部欄位名: 欄位值
另外,欄位值對應單個HTTP首部欄位可以有多個值,如下所示
keep-Alive: timeout= 15, max = 100
若 HTTP 首部欄位重複了會如何
當 HTTP 報文首部中出現了兩個或兩個以上具有相同首部欄位名時會怎麼樣?這種情況在規範內尚未明
確,根據瀏覽器內部處理邏輯的不同,結果可能並不一致。有些瀏覽器會優先處理第一次出現的首部字
段,而有些則會優先處理最後出現的首部欄位。
HTTP首部欄位型別
- 通用首部欄位
請求報文和響應報文雙方都會使用的首部
- 請求首部欄位
從客戶端向伺服器端傳送請求報文時使用的首部。補充了請求的附加內容、客戶端資訊、響應內容相關優先
級等資訊 - 響應首部欄位
從伺服器端向客戶端返回響應報文時使用的首部。補充了響應的附加內容,也會要求客戶端附加額外的內容
資訊。 - 實體首部欄位
針對請求報文和響應報文的實體部分使用的首部。補充了資源內容更新時間等與實體有關的資訊
HTTP/1.1 首部欄位一覽
通用首部欄位 首部欄位名| 說明 | ————- | ——– | Cache-Control|控制快取的行為 Connection| 逐跳首部、連線的管理 Date|建立報文的日期和時間 Pragma|報文指令 Trailer |報文末端的首部一覽 Transfer-Encoding |指定報文主體的傳輸編碼方式 Upgrade |升級為其他協議 Via |代理伺服器的相關資訊 Warning| 錯誤通知 請求首部欄位首部欄位名 | 說明 |
---|---|
Accept | 使用者代理可處理的媒體型別 |
Accept-Charset | 優先的字符集 |
Accept-Encoding | 優先的內容編碼 |
Accept-Language | 優先的語言(自然語言) |
Authorization | Web認證資訊 |
Expect | 期待伺服器的特定行為 |
From | 使用者的電子郵箱地址 |
Host | 請求資源所在伺服器 |
if-Match | 比較實體標記(ETag) |
if-Modifed-Since | 比較資源的更新時間 |
If-None-Match | 比較實體標記(與If-Match相反) |
If-Range | 資源未更新時傳送實體Byte的範圍請求 |
If-Unmodified-Since | 比較資源的更新時間(與If-Modified-Since相反) |
Max-Forwards | 最大傳輸逐跳數 |
Proxy-Authorization | 代理伺服器要求客戶端的認證資訊 |
Range | 實體的位元組範圍請求 |
Referer | 對請求中URI的原始獲取方 |
TE | 傳輸編碼的優先順序 |
User-Agent | HTTP 客戶端程式的資訊 |
End-to-end首部和 Hop-by-Hop首部
HTTP首部欄位將定義成快取代理和非快取代理端到端首部(End-to-end)
分在此類別中的首部會轉發給請求 / 響應對應的最終接收目標,且必須儲存在由快取生成的響應中,另外規 定它必須被轉發逐跳首部(Hop-by-Hop)
分在此類別中的首部只對單次轉發有效,會因通過快取或代理而不再轉發。HTTP/1.1 和之後版本中,如果要 使用 hop-by-hop 首部,需提供 Connection 首部欄位。 下面列舉了 HTTP/1.1 中的逐跳首部欄位。除這 8 個首部欄位之外,其他所有欄位都屬於端到端首部。 * Connection * Keep-Alive * Proxy-Authenticate * Proxy-Authorization * Trailer * TE * Transfer-Encoding * Upgrade為CooKie服務的首部欄位
![](https://user-gold-cdn.xitu.io/2018/9/13/165d2e5b4d07bfda?w=703&h=181&f=png&s=36418) ![](https://user-gold-cdn.xitu.io/2018/9/13/165d2e5e38b2f964?w=800&h=314&f=png&s=123841) ![](https://user-gold-cdn.xitu.io/2018/9/13/165d2e5ffcb43995?w=579&h=489&f=png&s=66013)其他首部
- X-Frame-Options
- X-XSS-protection
- DNT
- P3P