更新於 2024/08/08閱讀時間約 4 分鐘

新手村導讀 - 4: Http回應狀態碼

這篇就來介紹一下一般網頁的網頁回應碼,以官方正式的狀態碼來分類的話,可以分為五大類,以下就來一一介紹比較常見到的狀態碼吧~

1XX狀態碼

這類狀態碼代表請求已被接受,需要繼續處理。這類回應是臨時回應,只包含狀態行和某些可選的回應頭資訊,並以空行結束。由於此狀態並非最終的回應,因此比較少會碰到或實際使用到。

2XX狀態碼

這類別代表請求已成功被伺服器接收,算是一般來說最常見的狀態類別。以下是比較常見的狀態碼:

200 OK 代表請求已成功接收並且被回應,而回應內容則取決請求方法與該功能本身。

202 Accepted 代表請求已成功接收,但尚未被處理。最終該請求不一定會被執行。

204 No Content 代表請求已成功接收並且被處理,而此種狀態碼代表不需要返回任何內容。此種狀態碼常見於 POST、PATCH 等請求方法。

3XX狀態碼

這類狀態碼代表需要客戶端採取進一步的操作才能完成請求,現在這些狀態碼大多用來重新導向。

301 Moved Permanently 代表被請求的資源已永久移動到新位置,並且重新導向到新的網址。以SEO的觀點來看,301 的轉址會一併把頁面權重、流量等資料導向新網址。

302 Moved Temporarily 代表被請求的資源已暫時移動到新位置,並且重新導向到新的網址。以SEO的觀點來看,302 的轉址僅會把流量等資料導向新網址,因此在搜尋引擎中仍會有舊頁面的頁面權重/排名。

4XX狀態碼

這類狀態碼代表客戶端發生了錯誤,使得伺服器無法正確處理,常見的理由像是 token 驗證未通過、未帶入指定 header 內容等。

400 Bad Request 此類型為明顯的客戶端錯誤,例如格式錯誤、請求語法錯誤等。

401 Unauthorized 此類型為未認證錯誤,代表沒有帶入相應的資源去辨別使用者的身分,導致伺服器無法給予要求的資源。

403 Forbidden 此類型為身分驗證錯誤,代表沒有相應的權限去請求資源,與 401 不同的是, 403 有確實給予身分的認證,只是該身分無權限而已。

404 Not Found 此類型應該為最常見的幾種錯誤之一了,由於有太多的情況都可能產生 404 錯誤,因此比較難去準確辨別產生問題的位置。常見造成 404 的理由包含 url 錯誤、帶入的請求參數有問題,甚至是該客戶所請求資源不知為何不見了,只能說產生的理由千奇百怪。

405 Method Not Allowed 此類型代表請求行中指定的請求方法不能被用於請求相應的資源。簡單來說,你的請求方法用錯了。可能它限制只能用 Get 方法,但你卻用了 Post,因此在前期解析時就被擋了下來。

5XX狀態碼

這類別表示伺服器無法完成有效的請求,有可能是發生錯誤、處理佇列過長或是其他異常狀況的發生。

500 Internal Server Error 此類型應該也為最常見的幾種錯誤之一,是 5XX 系列中最通用錯誤訊息,只要伺服器在過程中發生預料之外的事情,預設都會拋出 500 錯誤。簡單來說,通常是程式寫錯了。

502 Bad Gateway 此類型代表伺服器間溝通時出現問題,例如防火牆阻擋、公司網域阻擋,或是單純的伺服器故障。

504 Gateway Timeout 大部分狀況下,伺服器會設定接收與回傳之間的上限秒數,當達到上限時間而程式還在處理時,伺服器就會先回傳504。一般來說,除了上限時間設定太短之外,也可能是因為有無限迴圈、 SQL 指令效能太差或是有其他潛在問題才會導致 504 狀態。

以上就是這次介紹的比較常見的 http status ,感謝您的收看!


參考資料:

  1. https://developer.mozilla.org/zh-TW/docs/Web/HTTP/Status
  2. https://en.wikipedia.org/wiki/List_of_HTTP_status_codes
  3. https://developers.google.com/search/docs/crawling-indexing/301-redirects?hl=zh-tw
  4. https://www.tsg.com.tw/blog-detail4-208-0-502.htm
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.