(1)Cache頭域
1. Cache-Control
- 在請(qǐng)求報(bào)文已經(jīng)說過了脸侥,用于設(shè)置緩存的屬性稚晚,瀏覽內(nèi)容不被緩存远搪。
2. Data
- 生成消息的具體時(shí)間和日期裤纹。
3. Expires
- 瀏覽器會(huì)在指定過期時(shí)間內(nèi)使用本地緩存。
4. Pragma
- 防止頁(yè)面被緩存(瀏覽器內(nèi)容不會(huì)被緩存)把跨。
Prama只有一個(gè)用法人弓,例如,Pragma:no-cache着逐。
(2)Cookie/Login 頭域
1. P3P
- 用于跨域設(shè)置Cookie崔赌,這樣可以解決iframe跨域訪問Cookie的問題。
2. Set-Cookie
- 用于把Cookie發(fā)送到客戶端瀏覽器耸别,每一個(gè)寫入Cookie都會(huì)生成一個(gè)Set-Cookie健芭。
(3) Entity頭域
1. ETag
- 和 If-None-Match配合使用
2. Last-Modified
- 用于指示資源的最后修改日期和時(shí)間。
3. Content-Type
- Web服務(wù)器告訴瀏覽器自己響應(yīng)的對(duì)象的類型和字符集太雨。
4. Content-Length
- 指明實(shí)體正文的長(zhǎng)度,以字節(jié)方式儲(chǔ)存的十進(jìn)制數(shù)字來表示魁蒜。在數(shù)據(jù)下行的過程中囊扳,Content-Length的方式要預(yù)先在服務(wù)器中緩存所有數(shù)據(jù),然后所有數(shù)據(jù)再一股腦兒地發(fā)給客戶端兜看。
5. Content-Encoding
- Web服務(wù)器表明自己使用了什么壓縮方法(gzip锥咸,deflate)壓縮相應(yīng)中的對(duì)象。
6. Content-Language
- Web服務(wù)器告訴瀏覽器自己響應(yīng)的對(duì)象的語言细移。
(4) Miscellaneous頭域
1. Server
- 指明HTTP服務(wù)器的軟件信息搏予。
2. X-AspNet-Version
- 如果網(wǎng)站是用ASP.NET開發(fā)的,這個(gè)header用來表示ASP.NET的版本弧轧。
3. X-Powered-By
- 表示網(wǎng)站是用什么技術(shù)開發(fā)的雪侥。
(5) Transport頭域
Connection
Connection: keep-alive
- 當(dāng)一個(gè)網(wǎng)頁(yè)打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉精绎,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁(yè)速缨,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接。
Connection: close
- 代表一個(gè)request完成后代乃,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接會(huì)關(guān)閉旬牲,當(dāng)客戶端再次發(fā)送Request時(shí),需要重新建立TCP連接。
- 一個(gè)傳輸層的實(shí)際環(huán)流原茅,它是建立在兩個(gè)相互通信的應(yīng)用程序之間吭历。
- 在HTTP1.1,request和response頭中都有可能出現(xiàn)一個(gè)Connection的頭擂橘,此header的含義是當(dāng)Client和Server通信時(shí)對(duì)于長(zhǎng)鏈接如何進(jìn)行處理晌区。
- 在HTTP1.1中,Client和Server都是默認(rèn)對(duì)方支持長(zhǎng)鏈接的贝室。如果Client使用HTTP1.1協(xié)議契讲,但又不希望使用長(zhǎng)鏈接,則需要在header中指明Connection的值為close滑频;如果Server方也不想支持長(zhǎng)鏈接捡偏,則在response中也需要明確說明Connection的值為close。不論request峡迷,還是response的header中包含了值為close的Connection银伟,都表明當(dāng)前正在使用的TCP鏈接在當(dāng)天請(qǐng)求處理完畢后會(huì)被斷掉。以后Client在進(jìn)行新的請(qǐng)求時(shí)就必須創(chuàng)建新的TCP鏈接了绘搞。
在此明確一個(gè)容易混淆的概念:HTTP協(xié)議的無狀態(tài)和Connection: keep-alive 是兩個(gè)不同的概念彤避。無狀態(tài)是指協(xié)議對(duì)于事務(wù)處理沒有記憶能力,服務(wù)器不知道客戶端是什么狀態(tài)夯辖。從另一方面講琉预,打開一個(gè)服務(wù)器上的網(wǎng)頁(yè)和你之前打開這個(gè)服務(wù)器上的網(wǎng)頁(yè)之間沒有任何聯(lián)系。HTTP是一個(gè)無狀態(tài)的蒿褂、面向連接的協(xié)議圆米,無狀態(tài)不代表HTTP不能保持TCP連接,更不能代表HTTP使用的是UDP協(xié)議(無連接)啄栓。
從HTTP1.1起娄帖,默認(rèn)都開啟了Keep-Alive,保持連接特性昙楚,簡(jiǎn)單地說近速,當(dāng)一個(gè)網(wǎng)頁(yè)打開完成后,客戶端和服務(wù)器之間用于傳輸HTTP數(shù)據(jù)的TCP連接不會(huì)關(guān)閉堪旧,如果客戶端再次訪問這個(gè)服務(wù)器上的網(wǎng)頁(yè)削葱,會(huì)繼續(xù)使用這一條已經(jīng)建立的連接。Keep-Alive不會(huì)永久保持連接淳梦,它有一個(gè)保持時(shí)間佩耳,可以在不同的服務(wù)器軟件(如Apache)中設(shè)定這個(gè)時(shí)間
(6)Location頭域
Location
- 用于重定向一個(gè)新的位置,包含新的URL地址谭跨。
(7)Security頭域
Strict-Transport-Security: max-age=31536000
- 網(wǎng)站通過HTTP Strict Transport Security (HSTS)通知瀏覽器干厚,這個(gè)網(wǎng)站禁止使用HTTP方式加載李滴,瀏覽器應(yīng)該自動(dòng)把所有嘗試使用HTTP的請(qǐng)求自動(dòng)替換為HTTPS請(qǐng)求。
- 當(dāng)你的網(wǎng)站第一次發(fā)送HTTPS請(qǐng)求時(shí)蛮瞄,服務(wù)器響應(yīng)Strict-Transport-Security頭所坯,瀏覽器記錄下這些信息。然后后面嘗試訪問這個(gè)網(wǎng)址的請(qǐng)求都會(huì)自動(dòng)把HTTP替換為HTTPS挂捅。當(dāng)HSTS頭設(shè)置的過期時(shí)間到了芹助,后面通過HTTP的訪問恢復(fù)到正常模式,不會(huì)再自動(dòng)跳轉(zhuǎn)到HTTPS闲先。每次瀏覽器接收到Strict-Transport-Security頭状土,它都會(huì)更新這個(gè)網(wǎng)站的過期時(shí)間,所以網(wǎng)站可以刷新這些信息伺糠,防止過期發(fā)生蒙谓。