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

开发中常见状态码以及状态码用途

前言

前端与后端进行数据交互时候,可以根据不同的状态码,快速定位问题所做,同时帮助我们能够更好的进行 SEO;
通常分为1xx到5xx
1xx是信息响应,
2xx是成功,
3xx是重定向,
4xx客户端错误,
5xx服务器错误

比如302和307重定向的区别,301是永久重定向,302是临时,而307是更严格的临时重定向。

比如403 Forbidden表示权限问题,而401需要认证

比如502和504,都是网关错误,但502是上游服务器无效响应,而504是网关超时。这时候需要明确两者的不同,帮助用户理解问题所在。

1xx(信息响应)

表示请求已被接收,需要继续处理。

100 Continue:客户端应继续发送请求的剩余部分(用于大文件上传前的确认)。

101 Switching Protocols:服务器同意客户端请求切换协议(如从 HTTP 升级到 WebSocket)。

102 Processing:服务器已收到请求,但处理尚未完成(用于异步操作)。

2xx(成功响应)

表示请求已成功被服务器接收、理解并处理。

200 OK:请求成功,响应中包含请求的数据(最常见)。

201 Created:请求成功且服务器创建了新资源(如 POST 请求后返回)。

202 Accepted:请求已接受,但处理尚未完成(异步任务)。

204 No Content:请求成功,但响应中无内容(如 DELETE 请求后返回)。

206 Partial Content:服务器返回部分内容(用于分段下载或断点续传)。

3xx(重定向)

需要客户端进一步操作以完成请求。

301 Moved Permanently:资源已永久移动到新 URL(SEO 权重转移)。

302 Found:资源临时移动到新 URL(浏览器默认会重定向,但保留原 URL)。

304 Not Modified:资源未修改,客户端可使用缓存(用于缓存验证)。

307 Temporary Redirect:临时重定向,要求客户端保持原请求方法(更严格的 302)。

308 Permanent Redirect:永久重定向,要求客户端保持原请求方法(更严格的 301)。

4xx(客户端错误)

客户端请求有误,服务器无法处理。

400 Bad Request:请求语法错误或参数无效(通用客户端错误)。

401 Unauthorized:需要身份验证(如未登录访问受限资源)。

403 Forbidden:服务器拒绝执行请求(权限不足)。

404 Not Found:请求的资源不存在(URL 错误或资源已删除)。

405 Method Not Allowed:请求方法不被允许(如用 GET 访问只支持 POST 的接口)。

408 Request Timeout:服务器等待请求超时。

429 Too Many Requests:客户端发送过多请求(限流)。

5xx(服务器错误)

服务器处理请求时发生错误。

500 Internal Server Error:服务器内部错误(通用错误,需查看日志排查)。

501 Not Implemented:服务器不支持请求的功能(如未实现的 HTTP 方法)。

502 Bad Gateway:网关或代理服务器收到无效响应(上游服务器故障)。

503 Service Unavailable:服务器暂时不可用(维护或过载)。

504 Gateway Timeout:网关或代理服务器等待上游响应超时。

505 HTTP Version Not Supported:服务器不支持请求的 HTTP 版本。

其他特殊状态码

418 I'm a Teapot:彩蛋状态码(来自愚人节玩笑,实际不用于生产)。

451 Unavailable For Legal Reasons:因法律原因不可访问(如政府审查)。

核心应用场景
调试与问题排查:通过状态码快速定位问题(如 404 检查 URL,500 检查服务器日志)。

API 设计:RESTful API 使用状态码表示操作结果(如 201 表示资源创建成功)。

SEO 优化:正确使用 301/302 重定向避免权重流失。

缓存控制:304 状态码帮助减少重复数据传输。

相关文章:

  • Mysql8.x常用命令
  • XXE 目录
  • 从零开发Chrome广告拦截插件:开发、打包到发布全攻略
  • 企业网设计
  • 【数据库】10分钟学会MySQL的增删改查:数据库、表、表记录操作指南
  • 数字电路逻辑代数 | 运算 / 定律 / 公式 / 规则 / 例解
  • MySQL创建数据库和表,插入四大名著中的人物
  • Node.js中HTTPS模块应用详解
  • 虚拟电商-数据库分库分表
  • PROC程序报无效的字符串或缓冲区长度问题
  • Java HashMap 底层原理
  • 【YOLO】AutoDL 训练模型
  • Python+DeepSeek:开启AI编程新次元——从自动化到智能创造的实战指南
  • Java三种注释方式
  • 【漫话机器学习系列】132.概率质量函数(Probability Mass Function, PMF)
  • 体验开源openeuler openharmony stratovirt模拟器
  • Linux内核实时机制18 - RT调度器1 - 数据结构
  • hive开窗函数
  • JavaScript性能优化实战
  • 第四十五篇-Tesla P40关闭GPU的ECC释放部分显存
  • 习近平出席俄罗斯总统举行的欢迎仪式
  • 美联储连续第三次维持利率不变,警示关税影响
  • 上海一中院一审公开开庭审理被告人胡欣受贿案
  • 吴清:推动公募基金高质量发展的行动方案今天将会发布
  • 云南昆磨高速发生交通事故致3辆车起火,昆明消防:幸无人员伤亡
  • 洗衣机无法有效杀菌