本文为您介绍ESA产品响应的 4xx、5xx 系列状态码,提供相关状态码的说明和解决措施,方便您进行错误排查。
4XX 状态码
4xx 代码表示客户端响应错误。
400
-
原因:Bad Request
-
原因释义:错误请求
-
说明:表明客户端向源站发送了一个请求,由于请求本身的问题,该请求无法被理解或处理。
-
解决措施:请检查请求输入参数的合法性、正确性后重试。
401
-
原因:Unauthorized
-
原因释义:未授权
-
说明:表明客户端向源站发送请求时未包含正确的身份验证凭据,源站需要身份验证才能处理该请求。
-
解决措施:请携带正确的身份验证凭据或在源站为请求授权后重试。
403
-
原因:Forbidden
-
原因释义:禁止
-
说明:表示源站理解了客户端的请求,但由于权限不足,无法访问请求的资源,因此无法执行。
-
解决措施:请为客户端请求开启相应的权限后重试。
404
-
原因:Not Found
-
原因释义:未找到
-
说明:表示源站无法找到请求的资源。
-
解决措施:请修改正确的请求路径后重试或检查服务端 URL 路径是否对外暴露。
405
-
原因:Method Not Allowed
-
原因释义:方法不允许
-
说明:表示客户端使用的 HTTP 请求方法(如 GET、POST、PUT 等)对目标资源无效。
-
解决措施:请调整请求方法为源站支持的请求方法后重试。
406
-
原因:Not Acceptable
-
原因释义:不可接受
-
说明:表示所请求的资源不支持以符合客户端指定的内容协商标头的格式提供(例如,
Accept-Charset或Accept-Language)。 -
解决措施:修改请求头字段为源站支持的类型后重试。
407
-
原因:Authentication Required
-
原因释义:需要身份验证
-
说明:表示客户端未提供通过代理源站访问请求资源所需的身份验证凭据。
-
解决措施:检查代理源站的身份验证是否过期,携带正确的代理源站签发的凭据后重试。
408
-
原因:Request Timeout
-
原因释义:请求超时
-
说明:表示源站未在合理的时间内收到完整的请求,并且不希望继续等待连接。
-
解决措施:建议尝试、适当延长源站处理时长或减小客户端请求包大小后重试。
409
-
原因:Conflict
-
原因释义:冲突
-
说明:表示由于与目标资源的当前状态冲突,请求无法完成。当多个客户端尝试编辑同一资源时,通常会在
PUT请求的响应发生此错误。 -
解决措施:尝试刷新后重新提交信息,或者在源站中增加冲突处理机制后重试。
410
-
原因:Gone
-
原因释义:已消失
-
说明:表示某个资源被有意永久删除时,源站会使用此状态码通知客户端该资源不再可用。
-
解决措施:客户端需要移除被永久删除资源的引用后重试。
411
-
原因:Length Required
-
原因释义:长度要求
-
说明:表示客户端未在请求头的
Content-Length字段中指定请求主体的长度,而获取资源需要此信息。 -
解决措施:在客户端的请求头中携带
Content-Length字段后重试;如无法估计长度时,可携带Transfer-Encoding: chunked字段定义分块传输编码。
412
-
原因:Precondition Failed
-
原因释义:先决条件不满足
-
说明:表示源站拒绝处理请求,因为资源不满足客户端指定的条件。
-
解决措施:请求携带正确的预置条件后重试。
413
-
原因:Payload Too Large
-
原因释义:有效负载太大
-
说明:表示源站拒绝处理请求,因为客户端发送的有效负载超出了源站可接受的大小限制。
-
解决措施:减少文件上传体积或提交数据大小后重试。
414
-
原因:URI Too Long
-
原因释义:URI 太长
-
说明:表示源站拒绝处理请求,因为客户端提供的 URI 过长。
-
解决措施:缩短客户端请求 URI 长度或将长参数分为多次处理后在客户端汇总结果。
415
-
原因:Unsupported Media Type
-
原因释义:不支持的媒体类型
-
说明:表示源站拒绝处理请求,因为有效负载的格式不受支持。
-
解决措施:修改请求头中的
Content-Type字段为服务端支持的格式后重试。
416
-
原因:Range Not Satisfiable
-
原因释义:范围不满足
-
说明:表示源站无法满足客户端请求头中
Range字段指定的请求范围。 -
解决措施:检查请求头
Range字段范围是否合法,修改Range范围后重新访问。
417
-
原因:Expectation Failed
-
原因释义:期望失败
-
说明:表示源站无法满足客户端请求头中
Expect字段指定的要求。 -
解决措施:常见于测试场景,如果真实访问出现请禁用请求头中的
Expect字段。
418
-
原因:非标准状态码
-
原因释义:非 ESA 返回的状态码
-
说明:ESA 不会主动返回 418 状态码。如果在使用 ESA 加速的资源时遇到 418 错误,该状态码通常由源站或中间代理返回,常见于源站配置的反爬虫或限流策略。使用 aria2 等支持断点续传的下载工具时,也可能因连接中断产生此类非标准响应码。
-
解决措施:
-
获取异常请求的响应头信息,确认 418 状态码的实际返回节点(ESA 节点或源站)。
-
检查源站是否配置了反爬虫或限流策略,确认 418 是否由源站主动返回。
-
如果使用 aria2 等工具下载大文件,排查断点续传场景下的连接中断问题,可尝试减少并发连接数或调整分片大小。
-
429
-
原因:Too Many Requests
-
原因释义:请求过多
-
说明:表示客户端在指定时间内发送了过多请求,具体时间由源站的速率限制规则决定。
-
解决措施:单位时间内请求次数超过了源站的限制,请过段时间重试,具体参考源站设置的重试间隔时长。
498
-
原因:Blocked for Security Throttling
-
原因释义:安全限流拦截
-
说明:ESA 节点的边缘 WAF 组件在当前流量负载过高、无法及时处理请求时,触发强安全模式策略。为了防止安全检测模块被绕过(Bypass),系统强制拦截该请求并返回此状态码。
-
解决措施:
-
检查业务流量:确认当前业务是否存在突发的流量洪峰或遭受了大流量攻击。
-
调整安全策略:如果业务对安全性要求极高且能容忍部分丢包,可保持"强安全模式";若期望业务连续性优先,建议联系阿里云技术支持,将边缘 WAF 的配置模式切换回默认的"Bypass"模式,即在 WAF 过载时允许请求直接回源,以保障服务可用性。
-
498 状态码是 ESA 产品对 HTTP 状态码的扩展,专门用于标识边缘安全模块(WAF)在强安全模式下的过载拦截场景。在标准 HTTP 协议中不存在此状态码。
499
-
原因:Client Close Request
-
原因释义:客户端关闭请求
-
说明:当客户端在源站能够响应之前终止连接时,通常会发生此错误。这个状态码表示客户端主动关闭请求,所以客户端不会收到异常响应页面,因此无需定义错误码页面。
5XX 状态码
520~599 之间的状态码用于ESA对错误场景的细化,为防止混淆,建议您在业务中避免使用该范围内的状态码。
500
-
原因:Internal Server Error
-
原因释义:内部服务错误
-
说明:表明您的源站存在问题,导致其无法满足请求。
-
解决措施:检查源站日志信息,查找具体错误后,再针对解决;也可以直接回退上一个正常的版本进行业务快速恢复。
502
-
原因:Bad Gateway
-
原因释义:网关错误
-
说明:表明ESA节点无法与您的源站建立连接。
-
解决措施:确定源站是否可用,其次检查源站防火墙规则是否对ESA节点放开。
503
-
原因:Service Temporarily Unavailable
-
原因释义:服务暂时不可用
-
说明:表明您的源站过载。
-
解决措施:检查源站负载情况,找到高负载应用进程后,使用相关工具排查高负载原因后对应解决。
504
-
原因:Gateway Timeout
-
原因释义:网关超时
-
说明:表明ESA节点无法与您的源站建立连接。
-
解决措施:检查源站状态是否可用或适当增加超时时间。
508
-
原因:Loop Detected
-
原因释义:检测到循环
-
说明:表明ESA节点收到的请求已经超出了循环进入ESA网络的上限次数。
-
解决措施:检查源站循环,确保循环有终止条件且能正常结束后重试。
520
-
原因:Web server returns an unknown error
-
原因释义:源站返回未知错误
-
说明:表明向ESA节点返回空的、未知的或意外的响应。
-
解决措施:请检查源站服务器日志,常见于程序崩溃或数据库连接错误。
521
-
原因:Web server is down
-
原因释义:源站已关闭
-
说明:表明源站拒绝来自ESA节点的连接。
-
解决措施:检查源站服务器是否可用。若源站服务器可用,则排查ESA节点是否在源站白名单。
522
-
原因:Connection timed out
-
原因释义:连接超时
-
说明:表明ESA节点与源站之间的连接超时。
-
解决措施:检查ESA节点 IP 地址是否受到源站速率限制或阻止,确认您的源站服务器允许ESA节点 IP 地址。
523
-
原因:Origin is unreachable
-
原因释义:无法访问源站
-
说明:表明ESA节点无法连接您的源站。
-
解决措施:确认ESA DNS 中已经正确添加源站 IP,测试ESA与源站之间的网络或路由问题。
524
-
原因:A timeout occurred
-
原因释义:出现超时
-
说明:表明ESA节点成功连接到源站,但源站未在默认的代理读取超时之前提供 HTTP 响应。
-
解决措施:检查源站是否超负荷工作,实现大型 HTTP 进程状态轮询以规避该错误。
525
-
原因:SSL handshake failed
-
原因释义:SSL 握手失败
-
说明:表明ESA节点与源站之间的 SSL 握手失败。
-
解决措施:配置正确的 SSL 证书后并确保与ESA支持的加密套件相匹配后重试,ESA支持的加密套件参考TLS加密套件与协议版本配置。解决方法参考HTTPS访问提示525错误。
526
-
原因:Invalid SSL certificate
-
原因释义:SSL 证书无效
-
说明:表明ESA节点无法验证您源源站上的 SSL 证书,从而无法建立安全连接。
-
解决措施:更新 SSL 证书后重试。
530
-
原因:Unable to resolve the origin hostname
-
原因释义:无法解析源站的主机名
-
说明:表明ESA节点无法解析源站的主机名,从而阻止其与源源站建立连接。
-
解决措施:确保源站主机名可以正常解析后重试。
581
-
原因:Exceeding the maximum execution hop count
-
原因释义:超过最大执行跳数
-
说明:表明边缘函数循环调用场景下,超过了最大的执行跳数后被拦截。
-
解决措施:请调整您的边缘函数代码,避免出现循环调用的情况。
582
-
原因:Version retrieval failed
-
原因释义:获取版本失败
-
说明:表明获取边缘函数版本信息失败。
-
解决措施:重新发布边缘函数脚本后重试。
583
-
原因:Rate limit
-
原因释义:触发限流
-
说明:超过边缘函数处理上限,触发流量限制。
-
解决措施:请联系我们处理。
584
-
原因:Insufficient computing resources
-
原因释义:计算资源不足
-
说明:表明ESA节点的计算资源不足。
-
解决措施:请联系我们处理。
594
-
原因:uncaught exception
-
原因释义:未捕获异常
-
说明:表明边缘函数脚本因未捕获异常而卡住。
-
解决措施:请在边缘函数脚本中处理相应的异常后重试。
595
-
原因:Execution time exceeds the limit
-
原因释义:执行时间超限
-
说明:表明边缘函数脚本执行时间超过最大允许时间(默认 120s)。
-
解决措施:减少脚本的执行时间后重试,即优化脚本的 CPU 执行时间在 120s 以内。
596
-
原因:Configuration pull failed
-
原因释义:配置拉取失败
-
说明:表明边缘函数配置拉取失败。
-
解决措施:请您通过控制台再次下发边缘函数配置,如果再次出现失败,请您联系我们处理。
598
-
原因:Debugger exception
-
原因释义:调试器异常
-
说明:边缘函数调试器出现异常。
-
解决措施:检查是否上传代码或创建 debugger session 后重试。
599
-
原因:Script execution exception
-
原因释义:脚本执行异常
-
说明:边缘函数脚本执行错误或者使用资源超限。
-
解决措施:检查边缘函数脚本是否存在语法错误,脚本格式是否符合规范。