http報文包括起始行、首部和主體。html
HTTP請求/響應起始行算法
請求組成: 方法 + 請求URL + HTTP版本瀏覽器
響應組成: HTTP版本 + 數字狀態碼 + 描述狀態的緣由短語緩存
HTTP首部服務器
首部內容爲客戶端和服務器分別處理請求和響應提供所須要的信息。首部和方法配合工做,共同決定了客戶端和服務器能作什麼。cookie
通用首部函數
客戶端和服務器均可以使用的首部編碼
首部url |
描述spa |
值 |
Connection |
是否須要持久鏈接 |
Keep-alive |
Cache- Control |
緩存控制 |
private:內容只緩存到私有緩存中(僅客戶端); public:全部內容都將被緩存(客戶端和代理服務器均可緩存); max-age= 25 :緩存將在25s後失效,須要從新訪問服務器; no-cache:必須先與服務器確認返回的響應是否被更改,而後才能使用該響應來知足後續對同一個網址的請求,驗證ETag; no-store:響應不被緩存; must-revalidation/proxy-revalidation:若是緩存的內容失效,請求必須發送到服務器/代理以進行從新驗證 |
Data |
首部字段data代表建立HTTP報文和日期。 |
|
Via |
追蹤客戶端與服務器之間的請求響應和響應報文的傳輸途徑。還能夠避免請求迴環的發生。 |
|
Warning |
告知用戶一些與緩存相關問題的警告 |
|
Transfer- Encoding: |
規定了傳輸報文主體時採用的編碼方式 |
|
請求首部中經常使用字段詳解
首部 |
描述 |
值 |
Accept |
客戶端支持的媒體類型 |
"text/html,iamge/*" |
Accept-Encoding |
客戶端支持的編碼方式 |
"gzip, compress" |
Accept-Charset |
客戶端支持的/字符集 |
"iso8859-5" |
Accept-Language |
客戶端支持的語言 |
"en, fr" |
Except |
|
|
If - Modified - Since |
瀏覽器緩存頁面的最後修改時間,服務器會將該時間與服務器時間對比,若是超出該時間則返回新內容,不然返回304 |
Time |
Range |
若是服務器支持請求的範圍,則返回資源的指定範圍 |
Range |
Content - Length |
請求消息正文的長度 |
|
Referer |
包含一個URL,用戶從該URL表明的頁面出發訪問當前請求的頁面 |
url |
User - Agent |
瀏覽器類型 |
|
Trailer |
首部字段Trailer會事先說明在報文主體後記錄了哪些首部字段,能夠應用在HTTP1.1版本分塊傳輸編碼時使用。 |
|
響應首部中經常使用字段詳解
首部 |
描述 |
值 |
Accecpt-Ranges "none" |
服務器可接受的範圍和類型 |
|
Age |
從原始服務器到代理緩存造成的估算時間(以秒記, 非負) |
|
ETag |
設置文件是否被修改 |
|
Last-Modified |
請求資源的最後修改時間 |
|
Serve |
服務器應用程序的名稱 |
|
Set-cookie |
設置cookie |
|
Proxy-Authenticate |
代理對客戶端的質詢列表 |
Basic |
實體首部中經常使用字段詳解
首部 |
描述 |
值 |
Content-encoding |
主體編碼方式 |
|
Content-Language |
主體語言 |
|
Content-Length |
主體長度 |
|
Content-MD5 |
主體MD5校驗和 |
|
Content-Range |
在整個資源中,實體表示的字節範圍 |
|
Content-type |
主體對象類型 |
|
MD5:一種散列函數,用以提供消息的完整性保護。MD5即Message-Digest Algorithm 5(信息摘要算法5),是計算機普遍使用的散列算法之一(又譯摘要算法、哈希算法)。對一段信息(Message)產生信息摘要(Message-Digest),以防止被篡改。用於確保信息傳輸完整一致。