HTTP協議的響應頭,請求頭詳解
1、HTTP請求
HTTP請求由三部分組成,請求行,訊息報頭,請求正文
http請求行以一個方法開頭,以空格開頭,後面跟著URI以及http協議版本,每行結尾使用回車和換行,CRLF標識回車換行
請求方法:
GET:請求獲取URI所標識的資源
POST:在URI所標識的資源後附加新的資料
HEAD:請求獲取由URI所標識的的資源的響應頭資訊
PUT:請求URI所標識的伺服器儲存一個資源
DELETE:請求伺服器刪除URI所表示的資源
TRACE:請求伺服器回送收到的請求資訊,用於測試或診斷
CONNECT:
OPTIONS:請求擦訊伺服器的效能
eg:GET http://www.baidu.com/ HTTP1.0(CRLF)
完整請求例項:
2、請求報頭:允許客戶端向伺服器端傳遞附加資訊
Accept:請求報頭域用於指定客戶端接收哪些型別的資訊。如:Accept:image/gif,text/html
Accept-Charset:請求報頭域用於指定客戶端接受的字符集,預設表示任何字符集都可以接受
Accetpt-Encoding:指定瀏覽器可以支援的web伺服器返回內容壓縮編碼型別。如:Accept-Encoding:gzip.deflate
Accept-Language:指定客戶端可以接受的語言。 如:Accept-Language:zh-cn
Authorization:用於證明證明客戶端有權檢視某個資源
Cache-Control
Cache-Control值:
Cache-directive | 開啟一個新的瀏覽器視窗 | 在原視窗中單擊 Enter 按鈕 | 重新整理 | 單擊 Back 按鈕 |
---|---|---|---|---|
public | 瀏覽器呈現來自快取的頁面 | 瀏覽器呈現來自快取的頁面 | 瀏覽器重新發送請求到伺服器 | 瀏覽器呈現來自快取的頁面 |
private | 瀏覽器重新發送請求到伺服器 | 第一次,瀏覽器重新發送請求到伺服器;此後,瀏覽器呈現來自快取的頁面 | 瀏覽器重新發送請求到伺服器 | 瀏覽器呈現來自快取的頁面 |
no-cache/no-store | 瀏覽器重新發送請求到伺服器 | 瀏覽器重新發送請求到伺服器 | 瀏覽器重新發送請求到伺服器 | 瀏覽器重新發送請求到伺服器 |
must-revalidation/proxy-revalidation | 瀏覽器重新發送請求到伺服器 | 第一次,瀏覽器重新發送請求到伺服器;此後,瀏覽器呈現來自快取的頁面 | 瀏覽器重新發送請求到伺服器 | 瀏覽器呈現來自快取的頁面 |
max-age=xxx (xxx is numeric) | 在 xxx 秒後,瀏覽器重新發送請求到伺服器 | 在 xxx 秒後,瀏覽器重新發送請求到伺服器 | 瀏覽器重新發送請求到伺服器 | 在 xxx 秒後,瀏覽器重新發送請求到伺服器 |
Connection:表示是否需要持久連線,(HTTP1.1預設進行持久連線)。如:Connection:close,Connection:keep-Alive,表示持久連線
Cookie:HTTP請求傳送時,會把儲存在該請求域名下的所有cookie值一起發給web伺服器
Content-Length:請求的內容長度
Content-Type:請求與實體對應的MIME資訊
Date:請求傳送的時間和日期
Host:指定請求的伺服器的域名和埠號
Except:請求特定的伺服器行為
If-Match:請求內容與實體相匹配才有效
If-Modified-Since:如果請求的部分在指定時間之後被修改則請求成功,未被修改則返回304程式碼
Pragma:用來包含特定的指令。如:Pragma: no-cache
Referer:包含一個URL,使用者從該URL代表的頁面出發訪問當前請求的頁面。
User-Agent:允許客戶端將它的作業系統、瀏覽器和其它屬性告訴伺服器
3、響應報頭
Location:用於重定向接受者到一個新的位置
Accept-Charset:表明伺服器是否支援指定範圍請求及哪種型別的分段請求
Age:從原始伺服器到代理快取形成的估算時間(以秒計,非負
Allow:對某網路資源的有效的請求行為,不允許則返回405。如:Allow: GET, HEAD
Cache-Control:告訴所有的快取機制是否可以快取及哪種型別。如:Cache-Control: no-cache
Content-Encoding:web伺服器支援的返回內容壓縮編碼型別。如:Content-Encoding: gzip
Content-Language:響應體的語言。如:Content-Language: en,zh
Content-Length:響應體的長度。如:Content-Length: 348
Content-Location:請求資源可替代的備用的另一地址。如:Content-Location: /index.htm
Content-MD5:返回資源的MD5校驗值
Content-Range:在整個返回體中本部分的位元組位置。如:Content-Range: bytes 21010-47021/47022
Content-Type:返回內容的MIME型別。如:Content-Type: text/html; charset=utf-8
Date:原始伺服器訊息發出的時間
Expires:響應過期的日期和時間。
Pragma:包括實現特定的指令,它可應用到響應鏈上的任何接收方。如:Pragma: no-cache
Proxy-Authenticate:它指出認證方案和可應用到代理的該URL上的引數。如:Proxy-Authenticate: Basic
refresh:表示瀏覽器應該在多少時間之後重新整理文件,以秒記。如:response.setHeader("refresh","3"),實現頁面每3s重新整理一次;
response.setHeader("refresh","3;url='/a/index.html'"),實現3s重新整理並跳轉到指定的URl
Retry-After:如果實體暫時不可取,通知客戶端在指定時間之後再次嘗試。如:Retry-After: 120
Server:web伺服器軟體名稱。如:Server: Apache/1.3.27 (Unix) (Red-Hat/Linux)
Set-Cookie:設定Http Cookie
WWW-Authenticate:表明客戶端請求實體應該使用的授權方案。如:WWW-Authenticate: Basic