1.1 HTTP報文首部
HTTP請求報文
包含:方法、URI、HTTP版本、HTTP首部字段(請求首部字段、通用首部字段、實體首部字段) HTTP響應(yīng)報文
包含:HTTP版本、狀態(tài)碼(數(shù)字和原因短語)、HTTP首部字段(響應(yīng)首部字段、通用首部字段、實體首部字段)
1.2 HTTP首部字段
通用首部字段
首部字段嗎說明Cache-Control控制緩存的行為Connection逐跳首部、連接的管理Date創(chuàng)建報文的日期時間Pragma報文指令Trailer報文末端的首部一覽Transfer-Encoding指定報文主體的傳輸編碼方式Upgrade升級為其他協(xié)議Via代理服務(wù)器的相關(guān)信息Warning錯誤通知
2. 請求首部字段
首部字段嗎說明Accept用戶代理可處理的媒體類型Accept-Charset優(yōu)先的字符集Accept-Encoding優(yōu)先的內(nèi)容編碼Accept-Language優(yōu)先的語言(自然語言)AuthorizationWeb認證信息Except期待服務(wù)器的特定行為From用戶的電子郵箱地址Host請求資源所在服務(wù)器If-Match比較實體標(biāo)記(Etag)If-Modified-Since比較資源的更新時間If-None-Match比較實體標(biāo)記(與If-Match相反)If-Range資源未更新時發(fā)送實體Byte的范圍請求If-Unmodified-Since比較資源的更新時間(與If-Modified-Since 相反)Max-Forwards最大傳輸逐跳數(shù)Proxy-Authorization代理服務(wù)器要求客戶端的認證信息Range實體的字節(jié)范圍請求Referer對請求中URI的原始獲取方TE傳輸編碼的優(yōu)先級User-AgentHTTP客戶端的信息
3. 響應(yīng)首部字段
首部字段嗎說明Accept-Ranges是否接收字節(jié)范圍請求Age推算資源創(chuàng)建經(jīng)過的時間Etag資源的匹配信息Location令客戶端重定向至指定URIProxy-Authenticate代理服務(wù)器對客戶端的認證信息Retry-After對再次發(fā)起請求的時機要求ServerHHTP服務(wù)器的安裝信息Vary代理服務(wù)器緩存的管理信息WWW-Authenticate服務(wù)器對客戶端的認證信息
4. 實體首部字段
首部字段嗎說明Allow資源可支持的HTTP方法Content-Encoding實體主體適用的編碼方式Content-Language實體主體的自然語言Content-Length實體主體的大?。▎挝唬鹤止?jié))Content-Location替代對應(yīng)資源的URIContent-MD5實體主體的報文摘要Content-Range實體主體的位置范圍Content-Type實體主體的媒體類型Expires實體主體過期的日期時間Last-Modified資源的最后修改日期時間
1.3 通用首部字段
1.3.1 Cache-Control
Cache-Control指令一覽
1. 緩存請求指令
指令參數(shù)說明no-cache無強制向源服務(wù)器再次驗證no-store無不緩存請求或響應(yīng)的任何內(nèi)容max-age=[秒]必需響應(yīng)的最大Age值max-stale(=[秒])可省略接收已過期的響應(yīng)min-fresh=[秒]必需期望在指定時間內(nèi)的響應(yīng)仍有效;要求緩存服務(wù)器返回至少還未過指定時間的緩存資源no-transform無代理不可更改媒體類型only-if-cached無從緩存獲取資源;客戶端僅在緩存服務(wù)器本地緩存目標(biāo)資源的情況下才會要求其返回cache-extension-新指令標(biāo)記(token)
2.緩存響應(yīng)指令
指令參數(shù)說明public無可向任意方提供響應(yīng)的緩存,表明其他用戶也可利用緩存private可省略僅向特定用戶返回響應(yīng);緩存服務(wù)器對該特定用戶提供資源緩存服務(wù),對其他用戶發(fā)送過來的請求,代理服務(wù)器不會返回緩存no-cache可省略緩存前必須先確認其有效性;目的:為了防止從緩存中返回過期的資源(不緩存過期的資源)。1. 請求中包含no-cache:客戶端不會接受緩存過的響應(yīng),游戲賬號出售緩存服務(wù)器必須把客戶端請求轉(zhuǎn)發(fā)給源服務(wù)器;2. 響應(yīng)中包含no-cache:緩存服務(wù)器不能對資源進行緩存no-store無不緩存請求或響應(yīng)的任何內(nèi)容;暗示請求或響應(yīng)中包含機密信息no-transform無代理不可更改媒體類型must-revalidate無可緩存但必須再向源服務(wù)器進行確認;代理會向源服務(wù)器再次驗證即將返回的響應(yīng)緩存目前是否有效proxy-revalidate無要求中間緩存服務(wù)器對緩存的響應(yīng)有效性再進行確認;所有的緩存服務(wù)器在接收到客戶端帶有該指令的請求返回響應(yīng)之前,必須再次驗證緩存的有效性。max-age=[秒]必需響應(yīng)的最大Age值。1. 請求中包含max-age:若緩存資源的緩存時間小于指定時間,則客戶端接收緩存的資源,若max-age=0,則緩存服務(wù)器通常需要將請求轉(zhuǎn)發(fā)給源服務(wù)器;2. 響應(yīng)中包含max-age:緩存服務(wù)器將不對資源有效性再作確認,而max-age數(shù)值代表資源保存為緩存的最長時間。s-maxage=[秒]必需公共緩存服務(wù)器響應(yīng)的最大Age值cache-extension-新指令標(biāo)記(token)
1.3.2 Connection
具有如下兩個作用:
控制不再轉(zhuǎn)發(fā)給代理的首部字段
?
1
Connection:不再轉(zhuǎn)發(fā)的首部字段名
管理持久連接
Connection:Keep-Alive 持久連接
Connection:close 服務(wù)器端想明確斷開連接
1.4 請求首部字段
首部字段嗎說明Accept通知服務(wù)器,用戶代理可處理的媒體類型及媒體類型的相對優(yōu)先級Accept-Charset通知服務(wù)器用戶代理支持的字符集及字符集的相對優(yōu)先順序Accept-Encoding通知服務(wù)器用戶代理支持的內(nèi)容編碼及內(nèi)容編碼的優(yōu)先級順序Accept-Language通知服務(wù)器用戶代理能處理的自然語言集及自然語言集的相對優(yōu)先級AuthorizationWeb認證信息Except期待服務(wù)器的某種特定行為From用戶的電子郵箱地址Host請求資源所在服務(wù)器If-Match比較實體標(biāo)記(Etag);僅當(dāng)If-Match值與Etag值一致時,服務(wù)器才會接受請求If-Modified-Since比較資源的更新時間;如果在If-Modified-Since字段指定的日期后,資源發(fā)生了更新,服務(wù)器會接受請求If-None-Match比較實體標(biāo)記(與If-Match相反);只有在If-None-Match字段值與Etag值不一致時,可處理該請求。If-Range資源未更新時發(fā)送實體Byte的范圍請求;若指定的If-Range字段值(Etag值或者時間)和請求資源的Etag值或時間相一致時,則作為范圍請求處理,反之,則返回全體資源If-Unmodified-Since比較資源的更新時間(與If-Modified-Since 相反)Max-Forwards最大傳輸逐跳數(shù),每次轉(zhuǎn)發(fā)數(shù)值減1,當(dāng)數(shù)值變?yōu)?時返回響應(yīng)Proxy-Authorization代理服務(wù)器要求客戶端的認證信息Range實體的字節(jié)范圍請求Referer對請求中URI的原始獲取方;告知服務(wù)器請求的原始資源的URITE傳輸編碼的優(yōu)先級User-AgentHTTP客戶端的信息;會將創(chuàng)建請求的瀏覽器和用戶代理名稱等信息傳達給服務(wù)器
注:If-XXX這種樣式的請求首部字段,都可稱為條件請求。服務(wù)器收到附帶條件的請求后,只有判斷制定條件為真時,才會執(zhí)行請求。
1.5 響應(yīng)首部字段
首部字段嗎說明Accept-Ranges告知客戶端服務(wù)器是否接收字節(jié)范圍請求;可指定的字段值有兩種:bytes,none;Age推算資源創(chuàng)建經(jīng)過的時間;告知客戶端,源服務(wù)器在多久前創(chuàng)建了響應(yīng),單位為秒Etag資源的匹配信息;告知客戶端實體標(biāo)識。強Etag:無論實體發(fā)生多么細微的變化都會改變其值,若Etag:只用于提示資源是否相同。Location令客戶端重定向至指定URI;將響應(yīng)接收方引導(dǎo)至某個與請求URI位置不同的資源Proxy-Authenticate代理服務(wù)器對客戶端的認證信息Retry-After對再次發(fā)起請求的時機要求ServerHHTP服務(wù)器的安裝信息Vary代理服務(wù)器緩存的管理信息;當(dāng)代理服務(wù)器收到帶有Vary首部字段指定獲取資源的請求時,若使用的Accept-Language字段值相同,則直接從緩存返回響應(yīng),反之,則需要先從源服務(wù)器獲取資源后才能作為響應(yīng)返回WWW-Authenticate服務(wù)器對客戶端的認證信息;用于HTTP訪問認證
1.6 實體首部字段
首部字段嗎說明Allow資源可支持的HTTP方法Content-Encoding實體主體適用的編碼方式Content-Language實體主體的自然語言Content-Length實體主體的大小(單位:字節(jié))Content-Location替代對應(yīng)資源的URI;報文主體返回資源對應(yīng)的URIContent-MD5實體主體的報文摘要;目的:檢查報文主體在傳輸過程中是否保持完整,以及確認傳輸?shù)竭_Content-Range實體主體的位置范圍Content-Type實體主體的媒體類型Expires實體主體過期的日期時間;當(dāng)首部字段Cache-Control有指定max-age指令時,比起首部字段Expires,會優(yōu)先處理max-age指令Last-Modified資源的最后修改日期時間
1.7 為Cookie服務(wù)的首部字段
首部字段名說明首部類型Set-Cookie開始狀態(tài)管理所使用的Cookie信息響應(yīng)首部字段Cookie服務(wù)器接收到的Cookie信息請求首部字段