本文为您介绍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字段。
429
- 原因:Too Many Requests 
- 原因释义:请求过多 
- 说明:表示客户端在指定时间内发送了过多请求,具体时间由源站的速率限制规则决定。 
- 解决措施:单位时间内请求次数超过了源站的限制,请过段时间重试,具体参考源站设置的重试间隔时长。 
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加密套件与协议版本配置。 
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 
- 原因释义:获取版本失败 
- 说明:表明获取边缘函数版本信息失败。 
- 解决措施:重新发布边缘函数脚本后重试。 
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 
- 原因释义:脚本执行异常 
- 说明:边缘函数脚本执行错误或者使用资源超限。 
- 解决措施:检查边缘函数脚本是否存在语法错误,脚本格式是否符合规范。