圖解HTTP《四》:返回結果的HTTP狀態碼

花鐺發表於2020-10-20

HTTP狀態碼負責表示客戶端HTTP請求的返回結果、標記伺服器端的處理是否正常。通知出現的錯誤等工作。

狀態碼告知從伺服器端返回的請求結果:

狀態碼的職責是當客戶端向伺服器端傳送請求時,描述返回的請求結果。藉助狀態碼,使用者可以知道伺服器端是正常處理了請求,還是出現了錯誤。
在這裡插入圖片描述
狀態碼如200 OK,以3位數字和原因短語組成。數字中的第一位指定了響應類別,後兩位無分類。

響應類別有以下5種:

  1. 1XX:資訊性狀態碼,接收的請求正在處理。
  2. 2XX:成功狀態碼,請求正常處理完畢。
  3. 3XX:重定向狀態碼,需要進行附加操作以完成請求。
  4. 4XX:客戶端錯誤狀態碼,伺服器無法處理請求。
  5. 5XX:伺服器錯誤狀態碼,伺服器處理請求出錯。

只要遵守狀態碼類別的定義,即使改變RFC2616中定義的狀態碼,或伺服器端自行建立狀態碼都沒問題。

2XX成功:

2XX的響應結果表明請求被正常處理了。

200 OK:

在這裡插入圖片描述

在響應報文內,隨狀態碼一起返回的資訊會因方法的不同而發生改變。比如:使用GET方法時,對應請求資源的實體會作為響應返回;而使用HEAD方法時,在響應中只返回實體的首部,不會返回實體的主體部分。

204 No Content:

在這裡插入圖片描述
該狀態碼代表伺服器接收的請求已成功處理,但在返回的響應報文中不含實體的主體部分。另外,也不允許返回任何實體的主體。一般在只需要從客戶端往伺服器傳送訊息,而對客戶端不需要傳送新資訊內容的情況下使用。

比如:當從瀏覽器發出請求處理後,返回204響應,那麼瀏覽器正在顯示的頁面不發生更新。

206 Pretial Content:

在這裡插入圖片描述
該狀態碼錶示客戶端進行了範圍請求,而伺服器成功執行了這部分的GET請求。響應報文中包含由Contnt-Range指定範圍的實體內容。

3XX 重定向:

3XX響應結果表明瀏覽器需要執行某些特殊的處理以正確處理請求。

301 Moved Permanently:

在這裡插入圖片描述
永久性重定向。該狀態碼錶示請求的資源已被分配了新的URI,以後應使用資源現在所指的URI,也就是說,如果已經把資源對應的URI儲存為書籤了,這時應該按Location首部欄位提示的URI重新儲存。

302 Found:

在這裡插入圖片描述
臨時性重定向。該狀態碼錶示請求的資源已被分配了新的URI,希望使用者本次能使用新的URI訪問。

和301 Moved Permanently狀態碼相似,但302狀態碼代表的資源不是被永遠移動,只是臨時性質的,換句話說,已移動的資源對應的URI將來還有可能發生改變。

303 See Other:

在這裡插入圖片描述
該狀態碼錶示由於請求對應的資源存在著另一個URI,應使用GET方法定向獲取請求的資源。

303狀態碼和302狀態碼有著相同的功能,但303狀態碼明確表示客戶端應當採用GET方法獲取資源,這點與302狀態碼有區別。

相關文章