当前位置: 首页 > backend >正文

状态码··

目录

一、状态码分类(按首位数字)

二、常见状态码详解

1xx(信息性状态码)

2xx(成功状态码)

3xx(重定向状态码)

4xx(客户端错误状态码)

5xx(服务器错误状态码)

三、状态码记忆技巧

四、如何处理状态码?

在计算机网络中,状态码(Status Code)是服务器向客户端返回的三位数数字代码,用于表示请求的处理结果。以下是常见的 HTTP 状态码分类及详细说明,帮助你快速理解不同状态码的含义和用途:

一、状态码分类(按首位数字)

分类描述
1xx(信息性状态码)服务器已接收请求,需要客户端继续操作。
2xx(成功状态码)请求已成功处理。
3xx(重定向状态码)需要客户端进一步操作以完成请求(如跳转新 URL)。
4xx(客户端错误状态码)客户端请求存在错误(如参数错误、权限不足)。
5xx(服务器错误状态码)服务器处理请求时发生内部错误。

二、常见状态码详解

1xx(信息性状态码)
  • 100 Continue

    • 含义:服务器已收到请求的第一部分(如请求头),客户端可以继续发送剩余部分(如请求体)。
    • 场景:常用于需要分块发送数据的长请求(如文件上传)。
  • 101 Switching Protocols

    • 含义:服务器切换协议(如从 HTTP 切换到 WebSocket)。
    • 场景:WebSocket 握手时常见。
2xx(成功状态码)
  • 200 OK

    • 含义:请求成功,返回预期结果(如 HTML 页面、JSON 数据)。
    • 场景:正常请求的默认成功响应。
  • 201 Created

    • 含义:请求已成功执行,并创建了新资源(如新建用户、文件)。
    • 场景:RESTful API 中创建资源时返回(如POST请求)。
  • 204 No Content

    • 含义:请求成功,但无需返回内容(如删除操作后的响应)。
    • 场景:常用于删除资源或执行无返回值的操作。
3xx(重定向状态码)
  • 301 Moved Permanently

    • 含义:资源永久迁移至新 URL,后续请求应使用新 URL。
    • 场景:网站域名变更(如从http迁移至https)。
  • 302 Found(临时重定向)

    • 含义:资源临时位于新 URL,客户端应使用原 URL 再次请求。
    • 场景:登录成功后跳转至首页(不改变原有请求意图)。
  • 307 Temporary Redirect

    • 含义:与 302 类似,但要求客户端保留请求方法(如POST不转为GET)。
    • 场景:更规范的临时重定向,避免方法改变导致的副作用。
  • 308 Permanent Redirect

    • 含义:与 301 类似,但要求客户端保留请求方法(如POST不转为GET)。
    • 场景:永久重定向时保留请求方法的完整性。
4xx(客户端错误状态码)
  • 400 Bad Request

    • 含义:客户端请求语法错误(如参数缺失、格式错误)。
    • 场景:前端提交无效表单、API 参数不正确。
  • 401 Unauthorized

    • 含义:请求需要身份验证(如未提供 Token、用户名密码错误)。
    • 场景:访问需要登录的接口,未认证时返回。
  • 403 Forbidden

    • 含义:客户端已认证,但无权限访问资源(如权限不足、IP 被封禁)。
    • 场景:普通用户尝试访问管理员接口。
  • 404 Not Found

    • 含义:请求的资源不存在(如 URL 错误、资源已删除)。
    • 场景:访问不存在的页面或 API 路径。
  • 405 Method Not Allowed

    • 含义:请求方法不被允许(如对仅支持GET的接口使用POST)。
    • 场景:调用 API 时使用错误的请求方法(如用GET提交表单)。
  • 413 Payload Too Large

    • 含义:请求体过大,超出服务器限制(如文件上传大小超限)。
    • 场景:上传大文件时超出服务器配置的最大容量。
  • 429 Too Many Requests

    • 含义:客户端请求频率过高,触发限流机制。
    • 场景:短时间内多次请求接口(如暴力破解、爬取数据)。
5xx(服务器错误状态码)
  • 500 Internal Server Error

    • 含义:服务器内部错误(如代码异常、数据库连接失败)。
    • 场景:后端代码抛出未处理的异常,需排查服务器日志。
  • 502 Bad Gateway

    • 含义:服务器作为网关或代理时,从上游服务器收到无效响应(如 Nginx 代理的后端服务崩溃)。
    • 场景:微服务架构中,下游服务不可用导致上游代理返回错误。
  • 503 Service Unavailable

    • 含义:服务器暂时无法处理请求(如过载、正在维护)。
    • 场景:高并发下服务器资源耗尽,或系统正在升级维护。
  • 504 Gateway Timeout

    • 含义:服务器作为网关或代理时,等待上游服务器响应超时。
    • 场景:下游服务响应过慢,导致上游代理超时。

三、状态码记忆技巧

  • 2xx:成功(想到 “200 OK”)。
  • 3xx:重定向(301/302 跳转)。
  • 4xx:客户端错(404 找不到,403 没权限)。
  • 5xx:服务器错(500 内部错误,503 服务不可用)。

四、如何处理状态码?

  1. 客户端(浏览器 / 前端)

    • 根据状态码调整用户提示(如 “404 页面不存在”、“500 服务器开小差”)。
    • 对重定向状态码(3xx)自动跳转新 URL。
    • 对 429 限流,提示用户 “请稍后重试”。
  2. 服务器(后端)

    • 合理设计状态码,避免返回模糊的 500 错误(如用 400 提示参数错误)。
    • 记录 5xx 错误日志,快速定位代码或环境问题。

http://www.xdnf.cn/news/8693.html

相关文章:

  • 【go】程序启动时发生了什么?为什么选择go语言开发,优势劣势
  • 5.1/Q1,GBD数据库最新文章解读
  • 创新项目实训开发日志7
  • 【动态规划】简单多状态(一)
  • 77. Combinations
  • Qt实战:自定义QTreeWidget搜索隐藏显示项功能 | 附完整源码
  • 基于音频Transformer与动作单元的多模态情绪识别算法设计与实现(在RAVDESS数据集上的应用)
  • 算法、算力、数据哪个更重要
  • C#核心概念解析:析构函数、readonly与this关键字
  • java 代码查重(五)比较余弦算法、Jaccard相似度、欧式距离、编辑距离等在计算相似度的差异
  • 开发者工具箱-鸿蒙大小写转换开发笔记
  • H3C-WAF-单机部署
  • 【每天一个知识点】“数字人”(Digital Human)
  • Easy Dataset数据集构建使用
  • 解析 Flask 上下文机制:请求上下文、应用上下文
  • AI Agent开发第74课-解构AI伪需求的魔幻现实主义
  • 【c++】成员函数被声明为 `const` 时
  • Oracle 的SHRINK 操作实现原理
  • 软考学习中
  • Docker Swarm配置
  • Linux系统基础——是什么、适用在哪里、如何选
  • 模拟电子技术基础----绪论
  • Python 训练营打卡 Day 34
  • 前端流行框架Vue3教程:24.动态组件
  • vue3使用七牛云上传文件
  • MATLAB例程——基于分批运输与最近邻优化的垃圾运输路径规划,n个垃圾收集点,每点有固定垃圾量,车辆从处理厂出发收集垃圾后返回,目标是最小化总行驶距离
  • 洛谷B2144 阿克曼(Ackermann)函数
  • 互联网和以太网之是什么与区别
  • 2025年安克创新Anker社招校招入职测评 | 3天备考、自适应能力cata测评北森题库、安克创造者启航试炼、安克AI能力测评能力测评历年真题
  • Python协同过滤算法:从原理到实战应用