fiddler響應報文的headers屬性詳解
(1)Cache頭域
1. Cache-Control
- 在請求報文已經說過了,用於設置緩存的屬性,瀏覽內容不被緩存。
2. Data
- 生成消息的具體時間和日期。
3. Expires
- 瀏覽器會在指定過期時間內使用本地緩存。
4. Pragma
- 防止頁面被緩存(瀏覽器內容不會被緩存)。
Prama只有一個用法,例如,Pragma:no-cache。
(2)Cookie/Login 頭域
1. P3P
- 用於跨域設置Cookie,這樣可以解決iframe跨域訪問Cookie的問題。
2. Set-Cookie
- 用於把Cookie發送到客戶端瀏覽器,每一個寫入Cookie都會生成一個Set-Cookie。
(3) Entity頭域
1. ETag
- 和 If-None-Match配合使用
2. Last-Modified
- 用於指示資源的最后修改日期和時間。
3. Content-Type
- Web服務器告訴瀏覽器自己響應的對象的類型和字符集。
4. Content-Length
- 指明實體正文的長度,以字節方式儲存的十進制數字來表示。在數據下行的過程中,Content-Length的方式要預先在服務器中緩存所有數據,然后所有數據再一股腦兒地發給客戶端。
5. Content-Encoding
- Web服務器表明自己使用了什么壓縮方法(gzip,deflate)壓縮相應中的對象。
6. Content-Language
- Web服務器告訴瀏覽器自己響應的對象的語言。
(4) Miscellaneous頭域
1. Server
- 指明HTTP服務器的軟件信息。
2. X-AspNet-Version
- 如果網站是用ASP.NET開發的,這個header用來表示ASP.NET的版本。
3. X-Powered-By
- 表示網站是用什么技術開發的。
(5) Transport頭域
Connection
Connection: keep-alive
- 當一個網頁打開完成后,客戶端和服務器之間用於傳輸HTTP數據的TCP連接不會關閉,如果客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經建立的連接。
Connection: close
- 代表一個request完成后,客戶端和服務器之間用於傳輸HTTP數據的TCP連接會關閉,當客戶端再次發送Request時,需要重新建立TCP連接。
- 一個傳輸層的實際環流,它是建立在兩個相互通信的應用程序之間。
- 在HTTP1.1,request和response頭中都有可能出現一個Connection的頭,此header的含義是當Client和Server通信時對於長鏈接如何進行處理。
- 在HTTP1.1中,Client和Server都是默認對方支持長鏈接的。如果Client使用HTTP1.1協議,但又不希望使用長鏈接,則需要在header中指明Connection的值為close;如果Server方也不想支持長鏈接,則在response中也需要明確說明Connection的值為close。不論request,還是response的header中包含了值為close的Connection,都表明當前正在使用的TCP鏈接在當天請求處理完畢后會被斷掉。以后Client在進行新的請求時就必須創建新的TCP鏈接了。
在此明確一個容易混淆的概念:HTTP協議的無狀態和Connection: keep-alive 是兩個不同的概念。無狀態是指協議對於事務處理沒有記憶能力,服務器不知道客戶端是什么狀態。從另一方面講,打開一個服務器上的網頁和你之前打開這個服務器上的網頁之間沒有任何聯系。HTTP是一個無狀態的、面向連接的協議,無狀態不代表HTTP不能保持TCP連接,更不能代表HTTP使用的是UDP協議(無連接)。
從HTTP1.1起,默認都開啟了Keep-Alive,保持連接特性,簡單地說,當一個網頁打開完成后,客戶端和服務器之間用於傳輸HTTP數據的TCP連接不會關閉,如果客戶端再次訪問這個服務器上的網頁,會繼續使用這一條已經建立的連接。Keep-Alive不會永久保持連接,它有一個保持時間,可以在不同的服務器軟件(如Apache)中設定這個時間
(6)Location頭域
Location
- 用於重定向一個新的位置,包含新的URL地址。
(7)Security頭域
Strict-Transport-Security: max-age=31536000
- 網站通過HTTP Strict Transport Security (HSTS)通知瀏覽器,這個網站禁止使用HTTP方式加載,瀏覽器應該自動把所有嘗試使用HTTP的請求自動替換為HTTPS請求。
- 當你的網站第一次發送HTTPS請求時,服務器響應Strict-Transport-Security頭,瀏覽器記錄下這些信息。然后后面嘗試訪問這個網址的請求都會自動把HTTP替換為HTTPS。當HSTS頭設置的過期時間到了,后面通過HTTP的訪問恢復到正常模式,不會再自動跳轉到HTTPS。每次瀏覽器接收到Strict-Transport-Security頭,它都會更新這個網站的過期時間,所以網站可以刷新這些信息,防止過期發生。