不要使用HTTP狀態碼作為業務代碼響應
HTTP狀態碼
是指瀏覽器訪問網址,成功或異常時瀏覽器或服務器告知用戶的代碼數字,它指的是網絡或服務器的狀態,有着不同的含義。
參加MDN、Java Api,常見的狀態碼:
- 200 OK 請求成功
- 301 重定向
- 400 錯誤請求
- 401 需要訪問授權,通常是basic授權
- 403 禁止訪問該地址
- 404 訪問地址不存在
- 500 服務器異常
業務代碼
業務代碼是業務流程中可能產生的結果,比如:用戶密碼不正確、用戶不存在、訂單不存在、第三方api請求錯誤等。
Restful Api
有些人喜歡使用HTTP代碼作為業務代碼作為restful的響應結果,如用200表示業務返回成功,用404表示用戶不存在,用500作為sql查詢異常。
為什么不要這么做
- 前端每次請求,可能產生的問題包括網絡問題、服務器問題和業務邏輯問題,HTTP狀態碼表示網絡傳輸的意義,如200只應該表示連接上了服務器,而不應該用來表示業務邏輯返回成功。HTTP狀態碼應該用於網絡問題和服務器問題判斷的依據,不應該閹割這部分的功能
- 返回除200以外的狀態碼,前端需要作為額外的處理以及瀏覽器的額外處理