網路與介面

HTTP 狀態碼

HTTP 狀態碼(HTTP status code)是伺服器在每一個網路回應最前面放的那個三位數字,一眼就告訴你這次請求的結果如何。那幾個出名的你早就見過了:200 意思是「好的,給你」,404 意思是「我找不到那個東西」,500 意思是「我這邊出錯了」。你打開的每一個頁面、發出的每一次 API 呼叫,回來時都蓋著這樣一個數字。

第一位數字把它們分成五大家族,這也是唯一值得記住的部分。2xx = 成功(成了)。3xx = 重新導向(你要的東西在別處)。4xx = 你出錯了(請求有問題、找不到、不允許)。5xx = 伺服器出錯了(不怪你)。所以哪怕一個你從沒見過的碼——比如 429——你也能一眼讀懂:4 字頭,說明問題出在「提問的一方」(它的意思是「請求太多了,慢一點」)。

排查問題時,狀態碼是第一個該看的東西。401 告訴你這是登入問題;404 告訴你位址寫錯了;500 則告訴你別再盯著自己的程式碼改了,去看看伺服器的日誌吧。它就是伺服器對「剛才那次怎麼樣?」給出的一字回答。

$ curl -I https://example.com/missing
HTTP/2 404

# 2xx ok · 3xx go elsewhere · 4xx your fault · 5xx server's fault

第一位數字幾乎說明了一切:4xx 表示問題出在你這邊。

口訣:4xx 怪「你」,5xx 怪「它」。看到 500 別急著改自己的程式碼,先去看伺服器日誌。

又稱
status coderesponse code200404500http code