HTTP請求方法及響應狀態碼詳解


HTTP請求方法和響應狀態詳解

HTTP請求方法

HTTP1.0/1.1支持的所有請求方法如下所示:

image-20210622163436411

GET

用來請求訪問已被URI識別的資源。指定的資源經服務器解析后返回響應內容。

image-20210622163806188

POST

POST方法用來傳輸實體的主體(一般是身份認證信息數據或者是請求服務的參數數據),雖GET方法也能做到,但一般不用。POST的功能和GET很類似,但POST的主要目的並不是獲取響應的主體內容。

image-20210622164102609

PUT

PUT方法用來傳輸文件,要求在請求報文的主體中包含文件內容,然后將文件保存請求URI指定的位置。

但是由於PUT方法自身不帶驗證機制,所以為了保障Web網站安全(防止惡意文件上傳),一般不使用PUT方法。

image-20210622164432672

狀態碼204表明文件傳輸成功,且沒有數據返回。

DELETE

DELETE用來刪除文件,是與PUT方法完全相反的方法,使用DELETE方法可以按照請求URI刪除指定的資源。同樣,DELETE方法本身也不帶驗證機制,一般Web網站都不會使用DELETE方法。

HEAD方法和GET方法一樣,只是不返回響應報文的主體部分,一般用來確認URI的有效性以及資源更新的日期時間

image-20210622164703616

上述例子通過HEAD方法請求響應得到響應報文的首部,根據首部就可以確認請求URI是否有效以及請求資源的更新時間。

Options

OPTIONS方法用來查詢針對請求URI指定資源支持的請求方法。

image-20210622165241408

上述例子表明請求URI指定資源支持的請求方法有GET、POST、HEAD、OPTIONS。

HTTP響應狀態碼

響應狀態碼的職責在於告知客戶端請求的處理結果。

image-20210622170923856

五類響應狀態碼

在三位的響應狀態碼中,第一位代表了相應的類別,后兩位無任何含義,只是狀態碼的代號。

image-20210622170957786

在上述五類響應狀態碼中,着重關注成功狀態碼(2XX)、客戶端錯誤狀態碼(4XX)以及服務器錯誤狀態碼(5XX)。

200 OK

表示請求被正常處理。而根據不同請求方法,得到的響應報文中的響應實體信息也不同。

image-20210622172158370

例如,使用GET方法,對應請求資源的實體會作為響應實體返回;而使用HEAD方法時,響應實體中只包含請求資源的實體首部信息(不會返回主體部分)。

204 No Content

請求已成功處理,但是返回的響應報文中不包含實體的主體部分。

image-20210622172459814

一般在只需要從客戶端往服務器發送信息,而對客戶端不需要發送新信息內容時使用。

206 Partial Content

當客戶端發起的是HTTP范圍請求(即請求頭中使用了字段Range),服務器若成功執行,則返回響應碼206。

image-20210622172825786

301 Moved Permanently

永久重定向,表明請求的資源已被分配了新的URI,以后請求該資源應使用新的URI

302 Found

臨時重定向,請求的資源被分配了臨時的新URI,希望用戶本次能使用新的URI請求該資源。

303 See Other

功能和302相同,但明確的表示客戶端應采用GET方法獲取資源。

304 Not Modified

客戶端發送了附帶條件的請求時,服務器端允許請求訪問資源,但是請求條件未滿足的情況。

400 Bad Request

該狀態碼表示請求報文存在語法錯誤,需要對請求內容進行修改后再次進行請求。

401 Unauthorized

若之前沒有進行請求,則表示客戶端發送的請求需要包含通過HTTP認證的認證信息;若之前已經進行過請求,則表示用戶認證失敗。

image-20210622191016915

返回401的響應中必須包含一個WWW-Authenticate首部用以質詢用戶信息,瀏覽器初次接收到401響應時,會彈出認證用的對話窗口。

403 Forbidden

拒絕對請求資源的訪問,發生403的情況:

  • 未獲得文件系統訪問權限
  • 使用受限制的IP地址訪問網站資源
404 Not Found
  • 服務器上找不到請求的資源
  • 拒絕請求但不想向客戶端表明原因
500 Internal Server Error
  • 服務器端在執行請求時發生了錯誤
  • Web應用存在bug或者出現臨時故障
503 Service Unavailable

服務器此時無法處理請求(服務暫時不可用)。出現503的可能原因:

  • 服務器暫時處於超負荷狀態
  • 服務器正進行停機維護

如果事先得知解除上述狀況需要的時間,服務端最好在響應報文中寫入Retry-After首部字段再返回給客戶端。

參考資料

《圖解HTTP》 by 上野宣


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM