Web - http状态码
1)1XX(临时响应) 表示临时响应并需要请求者继续执行操作的状态代码
100(继续) 请求者应当继续提出请求。表示服务器已收到请求的第一部分,正在等待其余部分
101(切换协议) 请求者已要求服务器切换协议,服务器已确认并准备切换
2)2XX(成功) 表示请求成功
200 成功处理了请求,一般情况下都是返回此状态码
201 请求成功,并且服务器创建了新的资源
202 接受请求但没创建资源
204 服务器成功处理了请求,但没有返回任何内容
3)3XX (重定向) 表示重定向,需要进一步的操作以完成请求
301(永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置
302(临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求
303(临时重定向) 强制浏览器可以将请求方法从POST修改到GET
304(未修改,缓存) 自从上次请求后,请求的网页未修改过。 服务器返回此响应时,不会返回网页内容
307(临时重定向) 不允许浏览器修改请求方法(不允许将原本为POST请求临时重定向到GET请求上,即应使用另一个POST请求来重复POST请求)
308(永久重定向) 不允许浏览器修改请求方法(不允许将原本为POST请求永久重定向到GET请求上,即应使用另一个POST请求来重复POST请求)
4)4XX(客户端错误) 表示客户端请求出错
400 服务器不理解请求的语法
401 请求要求身份验证, 对于需要登录的网页,服务器可能返回此响应
403 服务器拒绝请求
404 服务器找不到请求的网页
414 请求的 URI(通常为网址)过长,服务器无法处理
499 【不是HTTP的标准代码,状态码是Nginx自己定义】 客户端等不及了主动断开链接,Nginx就负责记录
5)5XX(服务器错误) 表示服务器在处理请求的过程中发生了错误
500(服务器内部错误) 服务器遇到错误,无法完成请求
502(错误网关) 服务器作为网关或代理,从上游服务器收到无效响应
503(服务不可用) 服务器目前无法使用(由于超载或停机维护),通常只是暂时状态
504(网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求
505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本
509 【这不是一个官方的状态码,但仍被广泛使用】服务器达到带宽限制
注意:(CGI:可执行程序)
1)499: 超过客户端设置的连接时间,客户端主动关闭连接
2)500: 这种错误通常由服务器端的代码错误、数据库连接问题、文件权限(读写)问题、配置文件环境错误引起,导致CGI执行错误并且会把错误结果通知服务器
3)502: 超了CGI的执行时间,由于CGI由于在自身的执行时间要求内无法按时完成,则无法返回给服务器正常响应,比如nginx服务未启动。【从网络角度,502已经与后端建立了连接,但服务挂了导致网关错误】
A必现502,一般是服务“挂了”,检查相应的端口和服务;
ps -ef |grep mysql #检查进程是否在
sudo netstat -lntp |grep PORT #检查端口有没有起来
curl -I 127.0.0.1:PORT/health #应用健康检查测试
B偶现502
a)CPU使用率高,QPS增加【考虑有大流量,后端压力导致短暂不可用,考虑临时扩容】
b)检查应用本身nginx read超时时间配置
4)504: 首先排除网络代理问题,再看是否超了服务器本身的最大允许读取时间,比如是否发生了死循环,数据库的慢处理(sql语句没走索引),nginx配置超时,可调整nginx proxy_read_timeout/proxy_send_timeout。【从网络角度,504与后端连接还未建立就被断开了,因为中间的nginx主动断开了,后端处理时长达到了nginx配置的最大时间,所以网关超时】
总结: 客户端(Client)<--->代理服务器(Nginx)<--->真实服务器(Server)
502(网关错误): 代理服务器后面的真实服务器节点配置出了问题或者已经挂掉了;
504(网关超时): 代理服务器后面的真实服务器已经过载,它要处理的请求报文实在太多,忙不过来了。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」