国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

踩坑合集!2025 年常見的 16 個 REST 狀態碼錯誤,你中了幾個?

開發 前端
為了搞清楚到底有哪些狀態碼使用誤區,我翻了 RFC 7231、研究了一些最佳實踐、審視了項目代碼,也總結出了一份“踩坑黑榜”——REST 接口中最容易犯錯的 16 個 HTTP 狀態碼使用場景。不僅如此,我還基于 Spring Boot 3.4 的架構給出優化實踐方案,讓我們少走彎路。

狀態碼不是“隨便寫個 200 就完事”的擺設

構建一個高可用、高可維護的 REST API,從來不只是把功能“跑通”那么簡單。對于返回給客戶端的 HTTP 狀態碼,很多開發者(包括我自己)在初期都掉進了“200 一把梭”的誤區。一開始我也這么做:用戶點擊“生成報告”,這個操作比較耗時,我直接返回一個 200 OK + “稍等,馬上好”作為反饋,自以為穩了,結果被新入職的小伙伴一句“你這不是應該用 202 Accepted 嗎?”當場點醒。

為了搞清楚到底有哪些狀態碼使用誤區,我翻了 RFC 7231、研究了一些最佳實踐、審視了項目代碼,也總結出了一份“踩坑黑榜”——REST 接口中最容易犯錯的 16 個 HTTP 狀態碼使用場景。不僅如此,我還基于 Spring Boot 3.4 的架構給出優化實踐方案,讓我們少走彎路。

無論你是后端開發、架構師還是 API 網關工程師,這篇文章都能幫你全面排查狀態碼使用是否規范。

以下為本次匯總的 16 個最容易犯錯的狀態碼場景,每個錯誤都附帶優化實踐和建議:

1?? 異步任務卻返回了 200 OK?

? 錯誤示范:

POST /generate-report
HTTP/1.1 200 OK
{"message": "報告正在生成中"}

? 正確做法:使用 202 Accepted 說明任務已接收但尚未完成,并返回任務狀態查詢鏈接:

POST /reports
HTTP/1.1 202 Accepted
Location: /reports/12345
Content-Type: application/json
{"status": "Processing", "estimated_completion": "30 seconds"}

查詢狀態時:

GET /reports/12345
HTTP/1.1 202 Accepted
{"status": "Processing", "progress": "70%"}

2?? 請求失敗卻返回了 200?

? 錯誤示范:

HTTP/1.1 200 OK
{"status": "error", "message": "找不到用戶"}

? 正確做法:使用具體錯誤碼,如:

  • 400 Bad Request:輸入參數有誤
  • 401 Unauthorized:未認證
  • 404 Not Found:資源不存在

3?? 使用 302 Found 重定向 POST?

? 錯誤示范:POST 提交后返回 302,可能導致表單重復提交。

? 正確做法:使用 303 See Other 告知客戶端重定向到 GET 頁面。

4?? 使用 404 來掩蓋方法不支持?

? 錯誤示范:

DELETE /users/123
HTTP/1.1 404 Not Found

? 正確做法:使用 405 Method Not Allowed,并提供 Allow 頭:

HTTP/1.1 405 Method Not Allowed
Allow: GET, POST

5?? 所有錯誤一律 500?

? 錯誤示范:

GET /search?query=
HTTP/1.1 500 Internal Server Error

? 正確做法:針對客戶端錯誤,使用 400 Bad Request 更明確。

6?? 不限流也不返回 429?

? 正確做法:對接口做限流,達到閾值返回 429 Too Many Requests:

HTTP/1.1 429 Too Many Requests
Retry-After: 60

7?? 數據校驗錯誤卻只返回 400?

? 錯誤示范:郵箱格式錯誤返回 400。

? 正確做法:使用 422 Unprocessable Entity 表示參數格式合法但值無效。

8?? 忽略緩存頭?

? 正確做法:結合 ETag、If-Modified-Since 使用 304 Not Modified 節省帶寬。

9?? 刪除失敗還說成功?

? 錯誤示范:刪除不存在用戶返回 200。

? 正確做法:

  • 成功刪除返回 204 No Content
  • 對象不存在返回 404 Not Found

?? 數據庫連接失敗也用 500?

? 正確做法:數據庫不可用返回 503 Service Unavailable,并設置 Retry-After 頭。

1??1?? 創建成功卻不告訴位置?

? 正確做法:使用 201 Created 同時提供 Location:

HTTP/1.1 201 Created
Location: /users/123

1??2?? API 被廢棄卻返回 500?

? 正確做法:使用 410 Gone 明確提示接口已廢棄。

1??3?? 未登錄卻說禁止訪問?

? 錯誤示范:

HTTP/1.1 403 Forbidden

? 正確做法:使用 401 Unauthorized,提示需要登錄認證。

1??4?? 客戶端上傳的格式不對卻沒提示?

? 正確做法:返回 415 Unsupported Media Type,并告知支持的格式類型。

1??5?? CORS 錯誤混淆狀態碼?

? 正確做法:確保返回正確的跨域頭部,并返回具體錯誤而非模糊的 500。

1??6?? 資源沖突也返回成功?

? 正確做法:重復創建資源時使用 409 Conflict 提示沖突。

實戰優化建議(Spring Boot 3.4 示例)

控制器異常處理建議:

@RestControllerAdvice
public class GlobalExceptionHandler {


    @ExceptionHandler(ResourceNotFoundException.class)
    public ResponseEntity<ApiError> handleNotFound(ResourceNotFoundException ex) {
        return ResponseEntity.status(HttpStatus.NOT_FOUND)
                .body(new ApiError("資源不存在", 404));
    }


    @ExceptionHandler(InvalidInputException.class)
    public ResponseEntity<ApiError> handleInvalidInput(InvalidInputException ex) {
        return ResponseEntity.status(HttpStatus.UNPROCESSABLE_ENTITY)
                .body(new ApiError("參數校驗失敗", 422));
    }


    @ExceptionHandler(RateLimitExceededException.class)
    public ResponseEntity<ApiError> handleRateLimit() {
        HttpHeaders headers = new HttpHeaders();
        headers.add(HttpHeaders.RETRY_AFTER, "60");
        return ResponseEntity.status(HttpStatus.TOO_MANY_REQUESTS)
                .headers(headers)
                .body(new ApiError("請求過多,請稍后重試", 429));
    }
}

返回體結構建議:

public class ApiError {
    private String message;
    private int code;


    public ApiError(String message, int code) {
        this.message = message;
        this.code = code;
    }
    // Getter / Setter 省略
}

總結

一個優秀的 RESTful API,不僅要返回正確的業務數據,還要講究語義清晰、語義準確。狀態碼,是 API 與客戶端交流的第一層語言。

使用錯誤的狀態碼,輕則讓前端工程師一臉懵逼,重則引發安全隱患、重試失敗、用戶體驗差……它既是技術細節,也代表團隊的工程素養。

如果你在維護系統 API,不妨對照這 16 個坑,來一次自查:

  • 我們是不是總是用 200 ?
  • 遇到校驗失敗是不是忘了用 422?
  • 緩存返回是不是該用 304?
  • 報錯是不是一律甩個 500?
責任編輯:武曉燕 來源: 路條編程
相關推薦

2017-02-07 10:40:36

2025-04-29 10:17:42

2024-04-01 08:05:27

Go開發Java

2018-09-11 09:14:52

面試公司缺點

2018-07-30 16:18:51

容災備份

2021-11-26 05:50:50

Promise JS項目

2018-04-08 22:16:21

2021-10-28 19:10:02

Go語言編碼

2019-12-12 14:32:26

SQL語句數據庫

2016-10-19 15:10:18

2025-04-15 02:00:00

API版本項目

2010-11-01 09:16:13

DIV+CSS

2019-09-25 15:30:15

2024-04-10 08:39:56

BigDecimal浮點數二進制

2019-06-18 07:12:25

驗證碼漏洞加密

2025-11-27 02:00:15

2025-12-03 00:57:00

2024-06-26 10:37:05

2025-03-26 02:00:00

API工具開發

2024-11-26 08:20:53

程序數據歸檔庫
點贊
收藏

51CTO技術棧公眾號

男男gay无套免费视频欧美| 成人动漫精品一区二区| 日韩电影免费一区| 久久99久久99小草精品免视看| 国产精品99久| 不卡大黄网站免费看| 久久久亚洲精品无码| 精品av一区二区| 热久久最新地址| 91九色在线观看视频| 日韩欧中文字幕| 日本成人黄色免费看| 成人免费观看在线观看| 久久久精品国产免费观看同学| 国产成人小视频在线观看| 制服丝袜在线播放| 99久久婷婷国产综合精品| 国模私拍一区二区三区| 国产区视频在线| 成人高清视频免费观看| 成人激情免费在线| 日本黄色免费在线| 色婷婷激情综合| 在线看无码的免费网站| 伊人亚洲精品| 欧美在线free| 中日韩免费毛片| 国产精品三级视频| 亚洲xxxx18| 伊人福利在线| www.亚洲在线| 久久99精品久久久久久水蜜桃| 日韩精品久久久久久久软件91| 亚洲一区二区欧美激情| 免费看成人午夜电影| 成人免费一区| 成人久久18免费网站麻豆| 国产精品极品在线| 亚洲精品传媒| 亚洲免费影院| 久久九九精品99国产精品| 免费网站在线观看人| av在线www| 草莓福利社区在线| www.久久久.com| 天天超碰亚洲| 久久精品免费观看| 18涩涩午夜精品.www| 欧美精品丝袜中出| 久久精品在线播放| 国产91aaa| 成人免费观看视频在线观看| 国产中文字幕在线| 亚州精品国产| 激情综合激情| 国产色产综合产在线视频| 欧美性xxxx极品高清hd直播| 亚洲一二三在线| 91久久在线视频| 日日摸日日碰夜夜爽无码| 丝袜视频国产在线播放| 欧美一级做一级爱a做片性| 欧美二区视频| 久久午夜色播影院免费高清| 欧美日韩国产首页| 欧美成人激情| 色综合天天爱| 成人在线综合网| 色综合 综合色| 日韩亚洲第一页| 国产精品区一区| 欧美性受xxxx| 不卡av播放| 日韩在线免费av| 精品国产伦一区二区三区观看说明 | 99热精品久久| 精品一区二区三区在线观看国产| 亚洲图片激情小说| 精品国产伦一区二区三区观看方式 | 粉嫩高清一区二区三区精品视频| 男女激情无遮挡| 嫩草香蕉在线91一二三区| www.成人网| 免费成人你懂的| 午夜视黄欧洲亚洲| 精品久久久999| 欧美精品久久| 成人伦理视频网站| 激情视频网站在线播放色| 91tv官网精品成人亚洲| 久久婷婷一区二区三区| 精品精品国产高清a毛片牛牛| 国产精品爽黄69天堂a| 日韩精品xxxx| 肉体视频在线| 一区二区三区中文| 亚洲欧洲精品一区二区三区不卡| 亚洲欧美精品伊人久久| 精品国产第一页| 天堂在线看视频| 欧美成人一二区| 日韩av午夜在线观看| 欧美日韩免费区域视频在线观看| 久久精品99久久香蕉国产色戒| 台湾成人av| 可以直接在线观看的av| 老汉色老汉首页av亚洲| 成人的网站免费观看| 日韩精品最新网址| 91九色在线观看| 国产女呦网站| 精品视频在线观看免费观看| 久久精品国产久精国产| 欧美日韩精品系列| 国产日韩精品在线| 亚洲精品自拍网| 日日夜夜综合| 韩国一区二区三区| 欧美区一区二区三区| 成人a视频在线观看| 少妇一级淫免费播放| 成人网ww555视频免费看| 日韩和欧美的一区| 欧美亚洲高清一区二区三区不卡| 欧美午夜一区二区| 亚洲三级毛片| 91黑丝在线| 精品夜色国产国偷在线| 成人午夜免费视频| 9191成人精品久久| 精品亚洲精品福利线在观看| 久久这里只有精品首页| 精品乱码亚洲一区二区不卡| 欧美大片一区二区三区| 欧美伦理在线视频| 久久无码高潮喷水| 日韩欧美999| 亚洲高清黄色| 久久久久久五月天久久久久久久久| 九七电影院97理论片久久tvb| 精品一区二区三区的国产在线播放| 欧美高清hd18日本| 国产成人精品日本亚洲11| 在线观看国产视频| 日韩极品一区| 亚洲成av人片在线观看| 国产精品久久久久久久久免费 | 久久av超碰| 久久蜜桃一区二区| 精品国产欧美一区二区五十路 | 日韩在线视频精品| 亚洲国产精品久久久男人的天堂| 热99精品里视频精品| jlzzjlzz欧美大全| 一道本一区二区三区| 最新国产精品久久精品| 456国产精品| 国产免播放器视频| 人人狠狠综合久久亚洲婷婷| 亚洲一区二区三区爽爽爽爽爽| 国产精品99一区| 色视频www在线播放| 国产精品麻豆久久| 日本二三区不卡| 精品蜜桃传媒| 91cn在线观看| 久久精品国产第一区二区三区| 日韩精品在线看| www污在线观看| 欧美视频二区欧美影视| 久久久国产一区二区三区四区小说 | 亚洲va欧美va在线观看| 亚洲欧美一区二区久久| 热久久久久久| 亚州黄色一级| 麻豆一区二区| 一级日本不卡的影视| 国产精品吴梦梦| 日韩欧美在线观看一区二区| 精品动漫3d一区二区三区免费版 | 亚洲免费观看高清| 国产三级精品网站| 91caoporm在线视频| 视频一区中文字幕| 亚洲欧洲一区二区三区久久| 日韩人妻精品无码一区二区三区| 欧美人妖视频| 狠狠色香婷婷久久亚洲精品| 黑人中文字幕一区二区三区| 欧美v亚洲v| 99久久精品一区二区| 91精品国产乱码久久久久久久久| 最新av中文字幕| 影院欧美亚洲| 亚洲精品福利视频| 午夜精品久久久内射近拍高清| 亚洲警察之高压线| 在线免费不卡电影| 正义之心1992免费观看全集完整版| 久久亚洲精品人成综合网|