HTTP的400、401、403的区别

186 阅读1分钟
HTTP 状态码 400、401 和 403 有以下区别:
  1. 400 Bad Request(错误请求):表示客户端发送到服务器的请求语法错误,服务器无法理解。这可能是由于请求参数不正确、请求体格式错误或其他与请求结构相关的问题导致的。

    • 示例:客户端发送的 JSON 数据格式不正确,或者请求的 URL 中包含了错误的参数。
  2. 401 Unauthorized(未授权):表示请求需要用户认证,但客户端未提供有效的认证信息,或者提供的认证信息不正确。

    • 示例:访问需要登录的页面,但未登录或者登录凭证(如令牌、用户名和密码)无效。
  3. 403 Forbidden(禁止访问):表示服务器理解请求,但拒绝执行,通常是因为客户端没有足够的权限访问所请求的资源。

    • 示例:虽然用户已经登录,但没有权限查看特定的页面或执行特定的操作。

以下是用 Node.js 的 Express 框架模拟这几种情况的简单示例代码:

const express = require('express');
const app = express();

// 模拟 400 错误
app.get('/bad-request', (req, res) => {
  res.status(400).send('Bad Request');
});

// 模拟 401 错误
app.get('/unauthorized', (req, res) => {
  res.status(401).send('Unauthorized');
});

// 模拟 403 错误
app.get('/forbidden', (req, res) => {
  res.status(403).send('Forbidden');
});

app.listen(3000, () => {
  console.log('Server is running on port 3000');
});