Http協議基礎之HTTP響應首部字段

響應首部字段

響應首部字段是由服務器端向客戶端返回響應報文中所使用的字段,用於補充響應的附加信息、服務器信息,以及對客戶端的附加要求等信息。

Accept-Ranges

Accept-Ranges: bytes

首部字段 Accept-Ranges 是用來告知客戶端服務器是否能處理範圍請求,以指定獲取服務器端某個部分的資源。

可指定的字段值有兩種,可處理範圍請求時指定其爲 bytes,反之則指定其爲 none。

Age

Age: 600

首部字段 Age 能告知客戶端,源服務器在多久前創建了響應。字段值的單位爲秒。

若創建該響應的服務器是緩存服務器,Age 值是指緩存後的響應再次發起認證到認證完成的時間值。代理創建響應時必須加上首部字段 Age。

ETag

ETag: “82e22293907ce725faf67773957acd12”

首部字段 ETag 能告知客戶端實體標識。它是一種可將資源以字符串形式做唯一性標識的方式。服務器會爲每份資源分配對應的 ETag 值。

另外,當資源更新時,ETag 值也需要更新。生成 ETag 值時,並沒有統一的算法規則,而僅僅是由服務器來分配。

資源被緩存時,就會被分配唯一性標識。例如,當使用中文版的瀏覽器訪問 http://www.google.com/ 時,就會返回中文版對應的資源,而使用英文版的瀏覽器訪問時,則會返回英文版對應的資源。兩者的 URI 是相同的,所以僅憑 URI 指定緩存的資源是相當困難的。若在下載過程中出現連接中斷、再連接的情況,都會依照 ETag 值來指定資源。

注意:
強 ETag 值和弱 Tag 值

ETag 中有強 ETag 值和弱 ETag 值之分。

  • 強 ETag 值,不論實體發生多麼細微的變化都會改變其值。
  • ETag: “usagi-1234”

  • 弱 ETag 值只用於提示資源是否相同。只有資源發生了根本改變,產生差異時纔會改變 ETag 值。這時,會在字段值最開始處附加 W/。
  • ETag: W/”usagi-1234”

    Location

    Location: http://www.usagidesign.jp/sample.html

    使用首部字段 Location 可以將響應接收方引導至某個與請求 URI 位置不同的資源。

    基本上,該字段會配合 3xx :Redirection 的響應,提供重定向的 URI。

    幾乎所有的瀏覽器在接收到包含首部字段 Location 的響應後,都會強制性地嘗試對已提示的重定向資源的訪問。

    Proxy-Authenticate

    Proxy-Authenticate: Basic realm=”Usagidesign Auth”

    首部字段 Proxy-Authenticate 會把由代理服務器所要求的認證信息發送給客戶端。

    它與客戶端和服務器之間的 HTTP 訪問認證的行爲相似,不同之處在於其認證行爲是在客戶端與代理之間進行的。而客戶端與服務器之間進行認證時,首部字段 WWW-Authorization 有着相同的作用。有關 HTTP 訪問認證,後面的章節會再進行詳盡闡述。

    Retry-After

    Retry-After: 120

    首部字段 Retry-After 告知客戶端應該在多久之後再次發送請求。主要配合狀態碼 503 Service Unavailable 響應,或 3xx Redirect 響應一起使用。

    字段值可以指定爲具體的日期時間(Wed, 04 Jul 2012 06:34:24 GMT 等格式),也可以是創建響應後的秒數。

    Server

    Server: Apache/2.2.17 (Unix)

    首部字段 Server 告知客戶端當前服務器上安裝的 HTTP 服務器應用程序的信息。不單單會標出服務器上的軟件應用名稱,還有可能包括版本號和安裝時啓用的可選項。

    Server: Apache/2.2.6 (Unix) PHP/5.2.5

    Vary

    Vary: Accept-Language

    首部字段 Vary 可對緩存進行控制。源服務器會向代理服務器傳達關於本地緩存使用方法的命令。

    從代理服務器接收到源服務器返回包含 Vary 指定項的響應之後,若再要進行緩存,僅對請求中含有相同 Vary 指定首部字段的請求返回緩存。即使對相同資源發起請求,但由於 Vary 指定的首部字段不相同,因此必須要從源服務器重新獲取資源。

    WWW-Authenticate

    WWW-Authenticate: Basic realm=”Usagidesign Auth”

    首部字段 WWW-Authenticate 用於 HTTP 訪問認證。它會告知客戶端適用於訪問請求 URI 所指定資源的認證方案(Basic 或是 Digest)和帶參數提示的質詢(challenge)。狀態碼 401 Unauthorized 響應中,肯定帶有首部字段 WWW-Authenticate。

    上述示例中,realm 字段的字符串是爲了辨別請求 URI 指定資源所受到的保護策略。

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章