1. 程式人生 > >HTTP協議的響應頭,請求頭詳解

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)

完整請求例項:

  1. Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8CRLF
    Accept-Encoding:gzip, deflate, sdchCRLF
    Accept-Language:zh-CN,zh;q=0.8CRLF
    Connection:keep-aliveCRLF
    Cookie:CRLF
    Host:www.baidu.comCRLF
    Upgrade-Insecure-Requests:1CRLF
    User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36
    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