一、HTTP請求報文
一個HTTP請求報文由請求行(request line)、請求頭部(header)、空行和請求數據4個部分組成。
請求行由請求方法字段、URL字段和HTTP協議版本字段3個字段組成,它們用空格分隔。例如,GET /index.html HTTP/1.1。
HTTP協議的請求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。
GET 完整請求一個資源;
POST 提交表單;
HEAD 僅請求響應首部;
PUT 上傳更新資源;
DELETE 刪除資源;
TRACE 追蹤一次資源請求中間所經過的代理;
OPTIONS 返回請求資源所支持的通信選項;
CONNECT 保留,將來使用。
HTTP請求頭包括的信息:
Accept:瀏覽器能夠處理的內容類型
Accept-Charset:瀏覽器能夠顯示的字符集
Accept-Encoding:瀏覽器能夠處理的壓縮編碼
Accept-Language:瀏覽器當前設置的語言
Connection:瀏覽器與服務器之間連接的類型
Cookie:當前頁面設置的任何Cookie
Host:發出請求的頁面所在的域
Referer:發出請求的頁面的URL
User-Agent:瀏覽器的用戶代理字符串
Date: 客戶端請求服務端的時間
Authorization:當客戶端接收到來自WEB服務器的WWW-Authenticate響應時,用該頭部來回應自己的身份驗證信息給WEB服務器
Range:瀏覽器告訴服務器自己想取對象的哪部分
二、HTTP響應報文
HTTP響應報文由三個部分組成,分別是:狀態行、消息報頭、響應正文。
狀態行包括:服務器HTTP協議的版本、服務器發回的響應狀態代碼、狀態代碼的文本描述。
HTTP響應頭部包括的信息:
Location: http://www.baidu.com(服務端需要客戶端訪問的頁面路徑)
Server:apache tomcat(服務端的Web服務端名)
Content-Encoding: gzip(服務端能夠發送壓縮編碼類型)
Content-Length: 80(服務端發送的壓縮數據的長度)
Content-Language: zh-cn(服務端發送的語言類型)
Content-Type: text/html; charset=GB2312(服務端發送的類型及采用的編碼方式)
Last-Modified: Tue, 18 Jul 2017 12:15:02 GMT(服務端對該資源最后修改的時間)
Refresh: 1;url=http://www.helloyoucan.com.(服務端要求客戶端1秒鍾后,刷新,然后訪問指定的頁面路徑)
Content-Disposition: attachment; filename=aaa.zip(服務端要求客戶端以下載文件的方式打開該文件)
Transfer-Encoding: chunked(分塊傳遞數據到客戶端)
Set-Cookie:SS=Q0=5Lb_nQ; path=/search(服務端發送到客戶端的暫存數據)
Expires: -1//3種(服務端禁止客戶端緩存頁面數據)
Cache-Control: no-cache(服務端禁止客戶端緩存頁面數據)
Pragma: no-cache(服務端禁止客戶端緩存頁面數據)
Connection: close(1.0)/(1.1)Keep-Alive(維護客戶端和服務端的連接關系)
Date: Tue, 18 Jul 2017 12:18:03 GMT(服務端響應客戶端的時間)