RESTful API 中常见的几种响应状态码及其含义详解

AI 编程助手,豆包旗下的编程助手,提供智能补全、智能预测、智能问答等能力,节省开发时间,释放脑海中的创造力,支持 VSCode,点击体验 AI

RESTful API 是现代 Web 应用程序开发的核心基础技术之一,而响应状态码则是 RESTful API 中非常重要的一部分。每一个 API 请求都会返回一个响应状态码,这个状态码告诉客户端请求处理是否成功,并提供必要的信息以供客户端做出适当的响应。

本篇文章旨在介绍 RESTful API 中最常见的响应状态码,分别是:200 OK、201 Created、204 No Content、400 Bad Request、401 Unauthorized、403 Forbidden、404 Not Found、500 Internal Server Error 和 502 Bad Gateway。我们将详细讨论每个状态码的含义、在何种情况下被使用以及如何在代码示例中正确地返回这些状态码。

200 OK

200 OK 表示 API 请求已成功处理,并返回了响应数据。这是最常见的状态码之一,通常用于请求数据、修改数据、以及删除数据等操作。

在 JavaScript 中,返回 200 OK 可以采用以下示例代码:

-------- ---------------- -
  -- ------ -
    -- --------------
  - ---- -
    -- --------------------
  -
-

------------------
  -------------- -- -
    -- ------------- -
      ------ ----------------
    - ---- -
      ----- --- -------------- -------- --- --- ------
    -
  --
  ---------- -- -----------------
  ------------ -- ----------------------

201 Created

201 Created 表示请求已经成功处理,并创建了新的资源。这个状态码通常用于创建新数据的请求操作。

可以使用以下示例代码返回 201 Created:

--------------------- ----- ---- -- -
  ----- ------- - ---------
  -- -----
  ----- ----- - -----------------------
  -- ------ --
  ------------------------- --------
---

204 No Content

204 No Content 表示请求已经成功处理,但是没有返回响应数据。这个状态码通常用于修改或删除数据的请求操作。

以下是返回 204 No Content 的示例代码:

--------------------------- ----- ---- -- -
  ----- ------ - --------------
  -- ----
  -------------------
  -----------------------
---

400 Bad Request

400 Bad Request 表示客户端发送了错误或非法的请求。这个状态码通常在客户端发送请求数据不完整或有错误时被使用。

以下是如何在代码中返回 400 Bad Request 的示例:

--------------------- ----- ---- -- -
  ----- ------- - ---------
  -- ---------- -
    -- ----------
    ---------------------------- ---- ------------
  - ---- -
    -- -----
    ----- ----- - -----------------------
    -- ------ --
    ------------------------- --------
  -
---

401 Unauthorized

401 Unauthorized 表示客户端未经授权就尝试访问受保护的资源。这个状态码通常在客户端没有提供正确的身份验证信息时被使用。

以下是如何在代码中返回 401 Unauthorized 的示例:

-------- -------------------------- --------- -
  -- --------
  -- ---------- ----
  -- --------------
-

------------------------------ ----- ---- -- -
  ----- ---------- - --------------------------
  -- ------------- -
    -- ----------
    ---------------------------- ------------------
  - ---- -
    ----- ---------- ---------- - ------------------ ---
    -- ----------------------- --- -------- -
      -- ----------
      ---------------------------- ---- ------------
      -------
    -
    ----- ----------- - ---------------------- ----------------------------
    ----- ---------- --------- - -----------------------
    ----- ---- - -------------------------- ----------
    -- ------- -
      -- --------
      ---------------------------- ------------------
    - ---- -
      -- -----------------
      --------------- ---------- ---------
    -
  -
---

403 Forbidden

403 Forbidden 表示客户端虽然提供了身份验证信息,但是所请求的资源仍然被认为是禁止访问的。这个状态码通常在客户端身份验证通过,但是没有足够的权限访问资源时被使用。

以下是如何在代码中返回 403 Forbidden 的示例:

-------- ------------------- ----- -
  -- -------------
-

-------------------------- ----- ---- -- -
  ----- ---------- - --------------------------
  -- ------------- -
    -- ----------
    ---------------------------- ------------------
  - ---- -
    ----- ---------- ---------- - ------------------ ---
    -- ----------------------- --- --------- -
      -- ----------
      ---------------------------- ---- ------------
      -------
    -
    ----- ---- - ----------------------------
    -- ------- -
      -- --------
      ---------------------------- ------------------
    - ---- -- --------------------- --------- -
      -- ---------
      ---------------------------- ---------------
    - ---- -
      -- -------------
      --------------- ------ ---------
    -
  -
---

404 Not Found

404 Not Found 表示客户端请求了不存在的资源。这个状态码通常在客户端请求一个不存在的 API 路径时被使用。

如以下示例所示:

------------------------ ----- ---- -- -
  ----- ------ - --------------
  ----- ---- - --------------------
  -- ------- -
    -- -------- --- --- -----
    ---------------------------- ---- ----------
  - ---- -
    -- ----
    ---------------
  -
---

500 Internal Server Error

500 Internal Server Error 表示服务器处理请求时遇到了意外错误。这个状态码通常在客户端发送了一个有效请求,但服务器无法处理该请求时被使用。

以下是如何在代码中返回 500 Internal Server Error 的示例:

------------------------------ ----- ---- -- -
  --- -
    -------------------------------
    -----------------------
  - ----- ------- -
    -- ---- --- --------
    ---------------------
    ---------------------------- --------- ------ ----------
  -
---

502 Bad Gateway

502 Bad Gateway 表示客户端请求的资源无法访问或响应。这个状态码通常在客户端请求的资源无法访问或请求到的服务遇到了错误时被使用。

以下是如何在代码中返回 502 Bad Gateway 的示例:

--------------------------- ----- ---- -- -
  --- -
    ----- ---------- - ------------------------
    ---------------------
  - ----- ------- -
    -- --------------
    ---------------------
    ---------------------------- ---- ------------
  -
---

结论

RESTful API 是现代 Web 应用程序开发的核心基础技术之一,响应状态码则是 RESTful API 中非常重要的一部分。在代码编写中,合理地使用响应状态码可以让我们更好地处理请求和响应,并将错误信息展示给客户端,以增强用户体验。了解常见的 RESTful API 响应状态码以及如何正确地使用它们,可以帮助后端和前端工程师更好地建立和维护 RESTful API 服务。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/671f408e2e7021665efc9e3c


猜你喜欢

  • 如何解决 Promise.all 中有 Promise.reject 时如何中断 Promise.all

    Promise.all 是 Promise 中的一种组合方式,我们可以使用它来在多个异步任务并行执行的情况下获取它们的返回结果,并在所有任务完成后进行后续操作。但是,当 Promise.all 中存在...

    15 天前
  • 使用 React Native 开发 iOS 和 Android 标准协议账号绑定控制台

    介绍 React Native 是一种使用基于 JavaScript 的方法构建 iOS 和 Android 应用程序的框架。这种框架允许使用 JavaScript 语言编写应用程序代码,同时运行在本...

    15 天前
  • ES12 中新特性:Object.fromEntries() 方法的实际应用

    随着 JavaScript 的发展,新增的 ES12 版本带来了许多新的特性,其中之一就是 Object.fromEntries() 方法。在这篇文章中,我们将深入探讨这个方法的实际应用,并分享一些示...

    15 天前
  • PM2 守护进程出现问题,解决方案分析

    前言 PM2 是一个 Node.js 应用程序管理器,可以实现守护进程、负载均衡、异常监控等功能,广泛用于 Node.js 项目的部署和管理。但是,在使用中可能会遇到一些问题,本文将重点介绍 PM2 ...

    15 天前
  • Material Design 中实现精致的交互动效所需的技术细节

    Google 的 Material Design 意在为开发者提供一套美观、能够让用户感到自然的设计语言,从页面排版到交互细节等各个方面都能够给人以舒服的感觉。其中重要的一环就是实现精致的交互动效,本...

    15 天前
  • 如何面对 SPA 页面白屏问题?

    单页面应用(Single Page Application,SPA)越来越受到前端开发的欢迎,因为 SPA 可以实现更好的用户体验,而且开发效率更高。但是,SPA 页面白屏问题经常困扰前端开发者,本文...

    15 天前
  • ES9 新特性:新增静态属性 descriptor 和__proto__的 Object 方法

    ES9 是 ECMAScript 标准的第九个版本,于 2018 年发布。本文讲述 ES9 新增的两个 Object 方法,分别是静态属性 descriptor 和__proto__,它们为 Java...

    15 天前
  • 解决 Angular Material 中 mat-select 组件选项重叠的 Bug

    在使用 Angular Material 构建前端应用时,我们经常会用到 mat-select 组件来实现下拉列表的选择功能。但是有时候会发现,当选项内容过长时,会出现选项重叠的 Bug,导致用户无法...

    15 天前
  • 优化 Jest 测试性能的几种方法

    Jest 是目前前端项目中常用的测试框架之一。在开发中,测试是保证代码质量和减少错误的重要手段,但测试也不是万能的,错误地使用测试会导致开发效率降低和代码的大量冗余。

    15 天前
  • Fastify 性能瓶颈分析及优化

    Fastify 是一个快速、低开销、轻松使用的 Web 框架。它是 Node.js 社区中最新的框架之一,与 Express 和 Koa 相比,它更加注重性能、低内存占用和快速启动时间。

    15 天前
  • RxJS 与 Redux 状态管理集成实践

    在现代 Web 开发中,前端应用程序的复杂性越来越高,这给状态管理带来了挑战。Redux 是一种广泛使用的状态管理库,可以使状态管理更容易,更可预测。然而,Redux 并不是最好的方案,RxJS 是一...

    15 天前
  • 无障碍响应式设计:如何实现无障碍友好的响应式设计

    随着移动设备的普及,响应式设计(Responsive Web Design)已经成为了前端开发的标配。优秀的响应式设计需要考虑多种设备尺寸和屏幕分辨率,以及不同用户的操作习惯和需求。

    15 天前
  • Hapi.js 中的输出控制技巧

    Hapi.js 是 Node.js 中最受欢迎的 Web 框架之一,它提供了许多灵活的方法来控制应用程序的输出。在这篇文章中,我们将深入探讨 Hapi.js 的输出控制技巧,包括如何处理错误,自定义响...

    15 天前
  • 解决 ES9 中 Function.prototype.toString() 方法变化的问题

    在 ES9 (ECMAScript 2018) 中,Function.prototype.toString() 方法的行为发生了变化。这对于前端开发者来说可能会造成一些问题。

    15 天前
  • 解决 Socket.io 存在的性能瓶颈问题

    在前端开发过程中,Socket.io 是一个常用的实现实时通信的工具库。它可以帮助我们在客户端和服务器之间建立实时、双向的通信连接,使得开发实时应用变得更加便捷。 然而,在一些高并发的场景下,Sock...

    15 天前
  • Tailwind 的 “支持自定义属性”的技术

    前言 Tailwind 是一个流行的 CSS 框架,它通过提供大量的 CSS 类来简化前端开发。在 2.2 版本中,Tailwind 还提供了一项新的功能:支持自定义属性。

    15 天前
  • MongoDB 的常见写入问题及解决方案

    在前端开发中,MongoDB 是一个非常常见的数据库。但是,在使用 MongoDB 时,我们可能会遇到一些写入问题,这些问题可能导致我们在数据存储方面遇到困难。在本文中,我们将讨论 MongoDB 中...

    15 天前
  • 如何在ES6中使用扩展运算符对数组和对象进行操作

    引言 ES6为开发者提供了很多强大的特性,其中最有用的特性之一是扩展运算符。扩展运算符是一种语法糖,它可以很方便地对数组和对象进行操作。在本文中,我们将深入探讨如何在ES6中使用扩展运算符对数组和对象...

    15 天前
  • CSS Grid 布局如何实现自适应图片放置?

    CSS Grid 布局是一项强大的前端技术,它允许我们以简单且灵活的方式构建网格系统,而不需要额外的 JavaScript 代码或计算。其中之一的应用是自适应图片放置,它可以在各种设备上实现响应式设计...

    15 天前
  • RxJS 如何优化冷 Observables 的性能

    前言 RxJS 是一个流行的 JavaScript 函数响应式编程库,它的许多功能都是基于 Observables(可观察对象)的。然而,Observables 的性能问题常常被人们所忽视,特别是冷 ...

    15 天前

相关推荐

    暂无文章