HTTP状态码全解析

HTTP状态码全解析

一、状态码分类速览
类别范围含义(类比)常见状态码举例
1xx100-199信息性状态(中场休息)100 Continue
2xx200-299成功(任务完成)200 OK, 201 Created
3xx300-399重定向(换个地方)301 Moved Permanently, 304 Not Modified
4xx400-499客户端错误(你搞砸了)404 Not Found, 403 Forbidden
5xx500-599服务器错误(我搞砸了)500 Internal Server Error, 502 Bad Gateway
二、常见状态码详解(含底层原理)
状态码名称含义(场景类比)底层原理
200OK一切正常(服务员:您的菜来啦!)服务器成功处理请求并返回数据,请求-响应循环完成。
201Created资源创建成功(服务员:您的预订已确认!)服务器根据请求创建了新资源(如POST创建用户),返回新资源的URL。
301Moved Permanently永久重定向(服务员:本店已搬到隔壁!)资源永久移动到新URL,浏览器会缓存重定向,下次直接访问新地址。
304Not Modified资源未修改(服务员:菜还是老样子!)客户端有缓存,服务器检查后发现资源未更新,让客户端用缓存版本。
400Bad Request请求格式错误(服务员:菜单写错啦!)服务器无法解析请求(如JSON格式错误),请求参数有问题。
401Unauthorized未授权(服务员:请先出示会员卡!)请求需要身份验证(如未登录访问需要权限的页面),需提供凭证。
403Forbidden禁止访问(服务员:本店不接待您!)服务器理解请求,但拒绝执行(如无权限访问),与401的区别是已认证但仍拒绝。
404Not Found资源不存在(服务员:菜单上没这道菜!)请求的资源(如URL、文件)不存在,服务器无法找到。
429Too Many Requests请求过多(服务员:您点单太快啦!)客户端短时间发送太多请求,触发限流(如API调用频率限制)。
500Internal Server Error服务器内部错误(服务员:厨师突然罢工!)服务器处理请求时发生意外错误(如代码崩溃、数据库连接失败)。
502Bad Gateway网关错误(服务员:传菜员摔了!)服务器(如Nginx)作为代理时,从上游服务器(如PHP-FPM)收到无效响应。
503Service Unavailable服务不可用(服务员:本店正在装修!)服务器暂时过载或维护中,无法处理请求。
504Gateway Timeout网关超时(服务员:菜做了1小时还没好!)服务器作为代理时,等待上游服务器响应超时(如PHP脚本执行时间过长)。
三、状态码底层原理总结
  1. 客户端-服务器模型

    • HTTP是“请求-响应”协议,状态码是服务器返回给客户端的“处理结果”。
  2. 分层架构影响

    • 4xx错误通常由客户端(如浏览器、APP)触发;
    • 5xx错误通常由服务器或中间件(如Nginx、PHP-FPM)触发。
  3. 协议设计逻辑

    • 状态码的三位数字中,第一位表示类别,后两位细化具体场景,便于程序自动处理。
  4. 缓存与重定向机制

    • 304状态码依赖客户端与服务器的“协商缓存”(如ETag、Last-Modified);
    • 301/302重定向通过响应头中的Location字段实现地址跳转。
四、一句话记忆法
  • 2xx:✅ 成了!
  • 3xx:👉 换地方!
  • 4xx:🙅‍♀️ 你的问题!
  • 5xx:🙅♂️ 我的问题!

下次遇到状态码,先看第一位数字,再对应表格找具体原因,秒懂! 🚀

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值