標籤:
HTTP支援許多不同的訊息頭,其中一些專用於特殊用途。一些訊息頭可用在請求與響應中,而其他一些訊息頭只能專門用在某個特定的訊息中。下面列出滲透測試員在攻擊Web應用程式時可能遇到的訊息頭。
1. 常用訊息頭
Connection。這個訊息頭用於告訴通訊的另一端,在完成HTTP傳輸後是關閉TCP串連,還是保持串連開放以接收其他訊息。
Content-Encoding。這個訊息頭為訊息主體中的內容指定編碼形式(如gzip),一些應用程式使用它來壓縮響應以加快傳輸速度。
Content-Length。這個訊息頭用於規定訊息主體的位元組長度。(HEAD文法的響應例外,它在對應的GET請求的響應中指出主體的長度。)
Content-Type。這個訊息頭用於規定訊息主體的內容類型。例如,HTML文檔的內容類型為text/html。
Transfer-Encoding。這個訊息頭指定為方便其通過HTTP傳輸而對訊息主體使用的任何編碼。如果使用這個訊息頭,通常用它指定塊編碼。
2. 請求訊息頭
Accept。這個訊息頭用於告訴伺服器用戶端願意接受哪些內容,像類型、辦公文檔格式等。
Accept-Encoding。這個訊息頭用於告訴伺服器,用戶端願意接受哪些內容編碼。
Authorization。這個訊息頭用於為一種內建HTTP身分識別驗證向伺服器提交認證。
Cookie。這個訊息頭用於向伺服器提交它以前發布的cookie。
Host。這個訊息頭用於指定出現在所請求的完整URL中的主機名稱。
If-Modified-Since。這個訊息頭用於說明瀏覽器最後一次收到所請求的資源的時間。如果自那以後資源沒有發生變化,伺服器就會發出一個帶狀態代碼304的響應,指示用戶端使用資源的快取複本。
If-None-Match。這個訊息頭用於指定一個實體標籤。實體標籤是一個說明訊息主體內容的標識符。當最後一次收到所請求的資源時,瀏覽器提交伺服器發布的實體標籤。伺服器可以使用實體標籤確定瀏覽器是否使用資源的快取複本。
Origin。這個訊息頭用在跨域Ajax請求中,用於指示提出請求的域(請參閱第13章瞭解相關內容)。
Referer。這個訊息頭用於指示提出當前請求的原始URL。
User-Agent。這個訊息頭提供與瀏覽器或產生請求的其他用戶端軟體有關的資訊。
3. 響應訊息頭
Access-Control-Allow-Origin。這個訊息頭用於指示可否通過跨域Ajax請求擷取資源。
Cache-Control。這個訊息頭用於向瀏覽器傳送緩衝指令(如no-cache)。
ETag。這個訊息頭用於指定一個實體標籤。用戶端可在將來的請求中提交這個標識符,獲得和If-None-Match訊息頭中相同的資源,通知伺服器瀏覽器當前緩衝中儲存的是哪個版本的資源。
Expires。這個訊息頭用於向瀏覽器說明訊息主體內容的有效時間。在這個時間之前,瀏覽器可以使用這個資源的快取複本。
Location。這個訊息頭用於在重新導向響應(那些狀態代碼以3開頭的響應)中說明重新導向的目標。
Pragma。這個訊息頭用於向瀏覽器傳送緩衝指令(如no-cache)。
Server。這個訊息頭提供所使用的Web伺服器軟體的相關資訊。
Set-Cookie。這個訊息頭用於向瀏覽器發布cookie,瀏覽器會在隨後的請求中將其返回給伺服器。
WWW-Authenticate。這個訊息頭用在帶401狀態代碼的響應中,提供與伺服器所支援的身分識別驗證類型有關的資訊。
X-Frame-Options。這個訊息頭指示瀏覽器架構是否及如何載入當前響應(請參閱第13章瞭解相關內容)。
HTTP訊息頭