1. 程式人生 > >HTTP常見的請求方法和狀態碼

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) 充當閘道器或代理的伺服器,未及時從遠端伺服器獲取請求