前端與後端開發都要懂得 HTTP 狀態碼
2024年5月23日
💎 加入 E+ 成長計畫 與超過 500+ 位軟體工程師一同在社群中成長,並且獲得更多的軟體工程學習資源
現代的軟體開發,前後端的溝通經常是透過 HTTP 協定來完成,因此 HTTP 狀態碼會是前端與後端軟體工程師,都應該要懂得。一起透過這篇文章來了解吧!
什麼是 HTTP 狀態碼?
HTTP 狀態碼是伺服器在回應客戶端請求時返回的狀態碼(如下圖)。這些狀態碼告訴客戶端請求的結果狀態,讓客戶端能夠了解伺服器的反應。最常見的狀態碼包括:200(請求成功)和 404(找不到頁面)。
以下是對 HTTP 狀態碼的詳細介紹,分為五個類別:
1xx ~ 5xx 五個類別狀態碼
1xx 類狀態碼:請求處理中
當今天看到 1 開頭的狀態碼,表示請求正在進行中,要稍待片刻,常見的包含:
- 100 Continue:客戶端可以繼續請求。通常在客戶端已發送請求的初始部分後使用,表示伺服器已接收請求的初步部分,客戶端應繼續發送其餘部分。
- 101 Switching Protocols:伺服器正在切換到客戶端請求的協議。這在客戶端請求更改協議(如從 HTTP/1.1 切換到 HTTP/2)時使用。
2xx 類狀態碼:請求成功
當今天看到 2 開頭的狀態碼,表示沒問題,請求已成功處理。常見的包含:
- 200 OK:請求成功。這是最常見的狀態碼,表示請求已成功處理且伺服器已返回所請求的資源。
- 201 Created:請求成功且伺服器已創建了新的資源。通常在 POST 或 PUT 請求後返回,表示新資源已成功創建。
- 204 No Content:請求成功但伺服器未返回任何內容。這通常在處理不需要返回數據的請求(如刪除操作)後使用。
3xx 類狀態碼:重定向
當今天看到 3 開頭的狀態碼,表示不在這邊,請求需要重新轉導,常見的包含:
- 301 Moved Permanently:請求的資源已永久移至新位置。客戶端應該使用新的 URL 來訪問資源。
- 302 Found:請求的資源已臨時移至新位置。客戶端應該使用當前的 URL 進行後續請求,但伺服器可能會在未來改變此位置。
- 304 Not Modified:用於緩存(HTTP caching),告訴客戶端回應未被修改,因此客戶端可以繼續使用回應的相同緩存版本。(想了解 HTTP caching 可以閱讀這篇文章)
4xx 類狀態碼:客戶端錯誤
當今天看到 4 開頭的狀態碼,表示你搞砸了,這代表請求的錯誤源自於客戶端。常見的包含:
- 401 Unauthorized:請求未被授權。客戶端必須進行身份驗證以獲得請求資源的許可。
- 403 Forbidden:伺服器理解請求但拒絕執行。這通常表示客戶端無權訪問請求的資源。
- 404 Not Found:請求的資源不存在。這是最常見的錯誤,表示伺服器找不到客戶端請求的資源。
5xx 類狀態碼:伺服器錯誤
當你看到 5 開頭的狀態碼,表示伺服器發生錯誤。常見的 5xx 狀態碼包括:
- 500 Internal Server Error:伺服器內部錯誤。這是通用錯誤,表示伺服器遇到意外情況,無法完成請求。
- 501 Not Implemented:伺服器不支持請求的功能。這表示伺服器尚未實現請求的方法。
- 503 Service Unavailable::伺服器暫時無法處理請求。這通常是由於伺服器過載或正在維護。