http請求由三部分組成,分別是:請求⾏、消息報頭、請求正⽂。
請求行格式:Method Request-URI HTTP-Version CRLF
Method表⽰請求⽅法代碼
Request-URI是⼀個統⼀資源標識符
HTTP-Version表⽰請求的HTTP協議版本
CRLF表⽰回車和換⾏(除了作為結尾的CRLF外,不允許出現單獨的CR或LF字符)。
常見的請求
GET 請求獲取Request-URI所標識的資源
POST 在Request-URI所標識的資源后附加新的數據
HEAD 請求獲取由Request-URI所標識的資源的響應消息報頭
PUT 請求服務器存儲⼀個資源,並⽤Request-URI作為其標識
DELETE 請求服務器刪除Request-URI所標識的資源
OPTIONS 請求查詢服務器的性能,或者查詢與資源相關的選項和需求
常見的請求報頭
User-Agent:包含發出請求的⽤戶信息。
Accept:Accept請求報頭域⽤於指定客戶端接受哪些類型的信息。eg:Accept:image/gif,表明客戶端希望接受
GIF圖象格式的資源;Accept:text/html,表明客戶端希望接受html⽂本。
Referer:告訴服務器我是從哪個頁⾯鏈接過來的
Cookie:⾝份憑證
HTTP響應包
HTTP響應也是由三個部分組成,分別是:狀態⾏、消息報頭、響應正⽂。
狀態行格式:HTTP-Version Status-Code Reason-Phrase CRLF
HTTP-Version表⽰服務器HTTP協議的版本
Status-Code表⽰服務器發回的響應狀態代碼
Reason-Phrase表⽰狀態代碼的⽂本描述。
常見的狀態碼
200 OK 客戶端請求成功
400 Bad Request 客戶端請求有語法錯誤,不能被服務器所理解
403 Forbidden 服務器收到請求,但是拒絕提供服務
404 Not Found 請求資源不存在
500 Internal Server Error 服務器發⽣不可預期的錯誤
503 Server Unavailable 服務器當前不能處理客戶端的請求,⼀段時間后可能恢復正常
常見的響應頭
Server Web服務器名稱
Set-cookie 服務器向客戶端發送的信息
Location 服務器通過這個頭告訴瀏覽器去訪問哪個頁⾯,瀏覽器接收到這個請求后,通常會⽴刻訪問Location頭所
指向的頁⾯,通過配合302狀態碼
Refresh 服務器通過這個告訴瀏覽器定時刷新瀏覽器