1. 程式人生 > >HTTP詳解--請求首部欄位(十)

HTTP詳解--請求首部欄位(十)

  • 請求首部欄位
    • 作用:從客戶端往伺服器端傳送請求報文中所使用的欄位,用於補充請求的附加資訊,客戶端資訊,對響應內容相關的優先順序等內容;

  • Accept

    • 作用:該欄位可通知伺服器,使用者代理能夠處理的媒體型別及媒體型別的相對優先順序。可使用type/subtype這種形式,一次指定多種媒體型別;
    • 媒體型別示例:
      • 文字檔案
        • text/html,text/plain,text/css...
        • application/xhtml+xml,application/xml...
      • 圖片檔案
        • image/jpeg,image/gif,image/png...
      • 視訊檔案
        • video/mpeg.video/quicktime...
      • 應用程式使用的二進位制檔案
        • application/octer-stream,application/zip...
  • Accept-Charset

    • 作用:用來通知伺服器使用者代理支援的字符集及字符集的相對優先順序。它可以一次性指定多個字符集。
  • Accept-Encoding

    • 作用:用來告知伺服器使用者代理支援的內容編碼及內容編碼的優先順序順序。可一次性指定多種內容編碼;
    • 內容編碼示例:
      • gzip:由檔案壓縮程式gzip生成的編碼格式,採用Lempel-Ziv演算法及32為迴圈冗餘校驗;
      • compress:由UNIX檔案壓縮程式compress生成的編碼格式;
      • deflate:組合zlib格式及由deflate壓縮演算法生成編碼格式;
      • identity:不執行壓縮或不會變化的預設格式;
  • Accept-Language

    • 作用:用來通知伺服器使用者代理能夠處理的自然語言集(中文或英文)等,以及自然語言集的相對優先順序。可一次指定多種自然語言集;
  • Authorization

    • 作用:用來通知伺服器,使用者代理的認證資訊。通常,想要通過伺服器認證的使用者代理會在接收到返回的401狀態碼響應後,把首部欄位Authorization加入請求中。共用快取在接收到含有Authorization首部欄位的請求時的操作處理會略有差異;
  • Expect

    • 作用:客戶端使用首部欄位Expect來告知伺服器,期望出現的某種特定行為。因伺服器無法理解客戶端的期望作出迴應而發生錯誤時,會返回狀態碼417Expectation Failed;
  • From

    • 作用:用來告知伺服器使用使用者代理的使用者的電子郵件地址。一般的使用目的就是為了顯示搜尋引擎等使用者代理的負責人的電子郵件聯絡方式。
      • 使用代理時,應儘可能包含From首部欄位;
  • Host
    • 作用:虛擬主機執行在同一個IP上,因此使用首部欄位Host加以區分;
      • Host會告知伺服器,請求的資源所處的網際網路主機名和埠號。Host在HTTP/1.1規範內是必須被包含在請求內的首部欄位;
      • Host和以單臺伺服器分配多個域名的虛擬主機的工作機制有很密切的關聯;
  • If-Match

    • 作用:條件請求。伺服器接收到附帶條件的請求後,只有判斷指定條件為真時,才會執行請求;
    • 示例

      • 只有當If-Match的欄位值跟ETag值匹配一致時,伺服器才會接收請求;
      • If-Match屬附帶條件之一,它會告知伺服器匹配資源所用的實體標記(ETag)值。這時的伺服器無法使用弱ETag值;
      • 伺服器會比對If-Match的欄位值和資源的ETag值,僅當兩者一致時,才會執行請求。反之,則返回狀態碼412;
      • 還可以使用星號(*)指定If-Match的欄位值。這種情況,伺服器會忽略ETag的值,只要資源存在就處理請求;
  • If-Modified-Sine

    • 作用:如果在If-Modified-Since欄位指定的日期時間後,資源發生了更新,伺服器會接收請求;
  • If-None-Match

    • 作用:只有在If-None-Match的欄位值與ETag值不一致時,可處理該請求。與If-Match的作用相反;
  • If-Range

    • 作用:它告知伺服器若指定的If-Range欄位值和請求資源的ETag值或時間相一致時,則作為範圍請求處理。反之,則返回全體資源;
    • 問題:使用If-Range傳送請求時,如果伺服器端的資源更新,那麼客戶端持有資源中的一部分也會隨之無效,那麼範圍請求作為前提是無效的。這時伺服器會暫且響應狀態碼412,目的是催促客戶端再次傳送請求。這就相當於花費了兩倍的時間;
  • If-Unmodified-Since

    • 作用:告知伺服器,指定的請求資源只有在欄位值內指定的日期時間之後,未發生更新的情況下,才能處理請求。與If-Modified-Since的作用相反;
  • Max-Forwards

    • 作用:通過TRACE方法或OPTIONS方法,傳送包含首部欄位Max-Forwards的請求時,該欄位以十進位制整數形式指定可經過的伺服器最大數目。伺服器在往下一個伺服器轉發請求之前,Max-Forwards的值減1後重新賦值。當伺服器接收到Max-Forwards值為0
    • HTTP協議進行通訊時,請求可能會經過多臺伺服器,如果代理伺服器由於某些原因導致請求轉發失敗
      • --
  • Referer

    • 作用:請求欄位Referer會告知伺服器請求的原始資源的URI