1. 程式人生 > >HTTP協議——HTTP響應首部

HTTP協議——HTTP響應首部

        響應首部欄位是由伺服器端向客戶端返回響應報文中所使用的欄位,用於補充響應的附加資訊、伺服器資訊,以及對客戶端的附加要求等資訊。這些首部有助於客戶端處理響應,並在將來發起更好的請求。

首部欄位名

說明

Accept-Ranges

是否接受位元組範圍請求

Age

推算資源建立經過時間

ETag

資源的匹配資訊

Location

令客戶端重定向至指定URI

Proxy-Authorization

代理伺服器對客戶端的認證資訊

Retry-After

對再次發起請求的時機要求

Server

HTTP伺服器的安裝資訊

Vary

代理伺服器快取的管理資訊

WWW-Authenticate

伺服器對客戶端的認證資訊

1、Accpet-Ranges

        Accept-Ranges:bytes
        首部欄位Accept-Ranges是用來告知客戶端伺服器是否能處理範圍請求,以指定獲取伺服器端某個部分的資源。
        可指定的欄位值有兩種個,可處理範圍請求時指定其為bytes,反之則為none。

2、Age

        首部欄位Age能告知客戶端,源伺服器在多久前建立了響應。欄位值的單位為秒。
        若建立該響應的伺服器是快取伺服器,Age值是指快取後的響應再次發起認證到認證完成的時間值。代理建立響應時必須加上首部欄位Age。

3、ETag

        首部欄位ETag能告知客戶端實體標識。它是一種可將資源以字串形式做唯一性標識的方式。伺服器會為每份資源分配對應的ETag值。
        另外,當資源更新時,ETag值也需要更新。生成ETage值時,並沒有統一的演算法規則,而僅僅是由伺服器來分配。資源被快取,就會被分配唯一性標識。當使用中文版的瀏覽器訪問 http://www.google.com/ 時,就會返回中文版對應的資源,而使用英文版的瀏覽器訪問時,則會返回英文版對應的資源。兩者的URI 是相同的,所以僅憑 URI 指定快取的資源是相當困難的。若在下載過程中出現連線中斷、再連線的情況,都會依照 ETag 值來指定資源。
        ETag 中有強 ETag 值和弱 ETag 值之分。強 ETag 值,不論實體發生多麼細微的變化都會改變其值。弱 ETag 值只用於提示資源是否相同。只有資源發生了根本改變,產生差異時才會改變 ETag 值。這時,會在欄位值最開始處附加 W/。

4、Location

        使用首部欄位Location可以將響應接收方引導至某個與請求URI位置不同的資源。基本上,該欄位會配合3xx:Redirection的響應,提供重定向的URI。幾乎所有的瀏覽器在接收到包含首部欄位 Location 的響應後,都會強制性地嘗試對已提示的重定向資源的訪問。

5、Proxy-Authenticate

        首部欄位 Proxy-Authenticate 會把由代理伺服器所要求的認證資訊傳送給客戶端。它與客戶端和伺服器之間的 HTTP 訪問認證的行為相似,不同之處在於其認證行為是在客戶端與代理之間進行的。而客戶端與伺服器之間進行認證時,首部欄位 WWW-Authorization 有著相同的作用。

6、Retry-After

        首部欄位 Retry-After 告知客戶端應該在多久之後再次傳送請求。主要配合狀態碼 503 Service Unavailable 響應,或 3xx Redirect 響應一起使用。欄位值可以指定為具體的日期時間(Wed, 04 Jul 2012 06:34:24GMT 等格式),也可以是建立響應後的秒數。

7、Server

        首部欄位 Server 告知客戶端當前伺服器上安裝的 HTTP 伺服器應用程式的資訊。不單單會標出伺服器上的軟體應用名稱,還有可能包括版本號和安裝時啟用的可選項。
        Server: Apache/2.2.6 (Unix) PHP/5.2.5

8、Vary

        當代理伺服器接收到帶有 Vary 首部欄位指定獲取資源的請求時,如果使用的 Accept-Language 欄位的值相同,那麼就直接從快取返回響應。反之,則需要先從源伺服器端獲取資源後才能作為響應返回
        Vary: Accept-Language

        首部欄位 Vary 可對快取進行控制。源伺服器會向代理伺服器傳達關於本地快取使用方法的命令。 從代理伺服器接收到源伺服器返回包含 Vary 指定項的響應之後,若再要進行快取,僅對請求中含有相同 Vary 指定首部欄位的請求返回快取。即使對相同資源發起請求,但由於 Vary 指定的首部欄位不相同,因此必須要從源伺服器重新獲取資源。

9、WWW-Authenticate

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