HTTP常見的請求方法和狀態碼
HTTP常見的請求方法:
(1)GET
(2)POST
(3)PUT
(4)DELETE
(5)HEAD
(6)OPTIONS
(7)TRACE
當瀏覽器向Web伺服器發出請求時,它向伺服器傳遞了一個數據塊,也就是請求資訊,HTTP請求資訊由3部分組成:(1)請求方法URI協議/版本;(2)請求頭;(3)請求正文
HTTP響應也由3部分組成:(1)協議狀態版本程式碼描述;(2)響應頭;(3)相應正文。
URL完整地指定了要訪問的網路資源,而HTTP的GET,POST,PUT,DELETE分別對應著對這個資源的查,改,增,刪。大部分情況下我們只用到了GET和POST。
GET
GET用於資訊獲取。
POST
POST向伺服器提交資料,可以改變伺服器上的資源。
HEAD
HEAD與GET本質是一樣的,區別在於主要用於獲取報文首部,不返回報文主體資訊。
PUT
PUT與POST極為相似,都是向伺服器傳送資料,但PUT通常制定了資源存放的位置,而POST沒有。
DELETE
DELETE用於刪除某一資源。
OPTIONS
OPTIONS用於獲取當前URL所支援的HTTP請求方法
TRACE
TRACE用於追蹤路徑,遠端診斷伺服器,它會把伺服器之前的請求通訊返回給客戶端。
GET vs POST
(1)傳送機制不同,GET一般用於查詢/獲取資源資訊,而POST一般用於更新資源資訊。
(2)GET請求的資料會附在URL之後,POST把提交的資料放置在HTTP請求體中
(3)GET方式提交的資料最多隻能是1024位元組(取決於作業系統的支援),POST理論上沒有資料量的限制(取決於伺服器的處理能力)。
(4)POST的安全性比GET的安全性高。通過GET提交資料,使用者名稱和密碼會以明文的形式出現在URL中
(5)GET請求會被瀏覽器自動快取,而POST不會,除非手動設定。
(6)在瀏覽器回退時,GET是無害的,POST會再次提交請求。
(7)在傳送請求時,GET產生一個TCP資料包,伺服器響應200.POST產生兩個TCP資料包,瀏覽器先發送header,響應100,再發送data,響應200.
(8)GET請求只能進行url編碼,而POST支援多種編碼方式。
(9)GET請求引數會被完整保留在瀏覽歷史記錄中,而POST中的引數不會被保留
常見的狀態碼:
狀態碼 | 釋義 |
---|---|
100(Continue) | 繼續,表示目前位置一切正常,客戶端應該繼續請求 |
200(OK) | 表示請求被伺服器正常處理 |
204(No Content) | 表示請求已成功處理,但是沒有內容返回 |
206(Partial Content) | 表示伺服器已經完成了部分GET請求 |
301(Moved Permanently) | 永久重定向,表示請求的資源已經永久的辦到了其他位置 |
302(Found) | 臨時重定向,表示請求的資源臨時搬到了其他位置 |
303(See Other) | 表示請求資源訊在另一個URI,應使用GET定向獲取請求資源 |
304(Not Modified) | 表示所請求的資源未修改,伺服器返回此狀態碼時不會返回任何資源 |
307(Temporary Redirect) | 臨時重定向 |
400(Bad Request) | 客戶端請求的語法錯誤,伺服器無法理解 |
401(Unauthorized) | 請求要求使用者的身份認證 |
403(Forbidden) | 伺服器理解客戶端的請求,但是拒絕執行此請求 |
404(Not Found) | 伺服器無法根據客戶端的請求找到資源 |
500(Internal Server Error) | 伺服器內部錯誤,無法完成請求 |
502(Bad Gateway) | 充當閘道器或代理的伺服器,從遠端伺服器接收到了一個無效的請求 |
504(Gateway Time-out) | 充當閘道器或代理的伺服器,未及時從遠端伺服器獲取請求 |