? 一、常見 HTTP 錯誤碼及含義
狀態碼 | 含義簡述 | 類型 |
400 | Bad Request:請求格式有誤 | 客戶端錯誤 |
401 | Unauthorized:未授權 | 客戶端錯誤 |
403 | Forbidden:禁止訪問 | 客戶端錯誤 |
404 | Not Found:資源不存在 | 客戶端錯誤 |
405 | Method Not Allowed:方法不允許 | 客戶端錯誤 |
408 | Request Timeout:請求超時 | 客戶端錯誤 |
429 | Too Many Requests:請求過多 | 客戶端錯誤 |
500 | Internal Server Error:服務器內部錯誤 | 服務端錯誤 |
502 | Bad Gateway:網關錯誤(如 Nginx 接上游服務失敗) | 服務端錯誤 |
503 | Service Unavailable:服務不可用 | 服務端錯誤 |
504 | Gateway Timeout:網關超時 | 服務端錯誤 |
? 二、常見錯誤碼及觸發場景示例
🔸 400 Bad Request
- 含義:請求語法有誤、參數格式錯誤
- 常見場景:
- 接口傳參缺失必填字段
- 參數類型錯誤(如 ID 本應為 int 但傳了 string)
- JSON 格式不規范(少了逗號、引號等)
- 應對方法:
- 檢查請求體結構是否符合接口文檔
- 使用 Postman/Charles 格式化請求
- 后端可補充返回字段名錯誤信息
🔸 404 Not Found
- 含義:訪問路徑錯誤,資源不存在
- 常見場景:
- 請求 URL 寫錯(拼寫、大小寫敏感)
- 訪問了一個已下線/未上線的接口
- 版本號錯誤(如
/api/v2/...
實際是/api/v1/...
)
- 應對方法:
- 確認接口地址是否準確(參考文檔)
- 與后端確認接口是否發布上線
- 確認環境是否一致(測試服?預發布服?)
🔸 502 Bad Gateway
- 含義:Nginx/Gateway 作為中間層,連接上游服務失敗
- 常見場景:
- 接口后端服務崩潰/重啟中
- 網關配置錯誤或轉發超時
- 應對方法:
- 用 curl/postman 等嘗試直連服務 IP/端口,排查是否網關問題
- 通知后端/運維檢查 upstream 配置、查看服務日志
🔸 503 Service Unavailable
- 含義:服務暫時不可用(通常服務下線或過載)
- 常見場景:
- 服務部署中、重啟中
- 被限流、服務端熔斷
- 應對方法:
- 檢查是否發布期間
- 查看服務健康檢查日志
- 若為限流,建議增加重試機制或節流訪問
🔸 500 Internal Server Error
- 含義:后端服務器代碼運行出錯
- 常見場景:
- 程序未處理空指針、數據庫異常等
- 請求數據格式正確但后端邏輯崩潰
- 應對方法:
- 查看后端日志定位異常
- 可通過返回字段 message 獲取詳細錯誤提示(如果有返回)
? 三、錯誤碼排查思路(面試時這樣回答)
遇到錯誤碼問題時,我會按以下幾個維度排查定位:
- 確認接口地址是否正確(URL、Method、Header)
- 請求參數是否規范(字段是否缺失、類型是否正確)
- 是否為環境或服務配置問題(404、502 可優先排查)
- 查看接口響應體中的 message 字段或錯誤碼子碼
- 如服務端錯誤則查看服務日志、訪問日志定位問題根源
在實習過程中,比如我曾遇到 400 錯誤,是因為請求中 activityId
字段寫成了 acivityId
,導致后端校驗失敗。也遇到 502,是因為換包環境配置錯了網關路徑,后端服務未注冊到網關。
? 四、實習答題建議(模板)
在實習中,我經常遇到一些常見 HTTP 錯誤碼:
- 400 多為請求參數錯誤或 JSON 格式問題;
- 404 是路徑寫錯或接口未上線;
- 502、503 一般是部署時服務未啟動或網關轉發失敗;
- 500 是后端拋異常;