概述
4xx 代码通常指明客户方面出现了问题。也可能是网络问题。
- 对任何请求方法,都有可能遇到4xx错误
- 源站服务器应包括一条错误信息以及与User-agent关连的解释,对于
HEAD
请求除外
Cloudflare 将这类错误从源站转交给您的访问者
- 400 Bad Request
- 401 Unauthorized
- 402 Payment Required
- 403 Forbidden
- 404 Not Found
- 405 Method Not Allowed
- 406 Not Acceptable
- 407 Authentication Required
- 408 Request Timeout
- 409 Conflict
- 410 Gone
- 411 Length Required
- 412 Precondition Failed
- 413 Payload Too Large
- 414 URI Too Long
- 415 Unsupported Media Type
- 417 Expectation Failed
- 429 Too Many Requests
- 451 Unavailable For Legal
- 499 Client Close Request
400 Bad Request (RFC7231)
服务器无法处理请求,由于某些内容被认为是客户端错误(例如,语法错误、无效的请求消息框架或异常的请求路径)。
401 Unauthorized (RFC 7235)
未使用正确的验证信息发送请求
- 服务器必须根据第 4.1 节以
WWW-Authenticate
标头字段的形式质询用户信息 - 客户端可以用相同凭据发送第二个请求,如果质询与之前的相同,则服务器将提供实体以帮助客户端找到所需的验证信息。
402 Payment Required (RFC7231)
尚未按照 RFC 标准实施,但保留供将来使用
403 Forbidden (RFC7231)
如果您看到没有显示 Cloudflare 字样的 403 错误,则该错误是直接从源站 Web 服务器返回的,而不是 Cloudflare 返回的,该错误通常与您服务器上的权限设置有关。
出现此错误的主要原因是:
1.您设置的权限配置,或者您设置的 .htaccess 文件中配置的规则
2.Mod_security 规则。
3.IP 拒绝访问限制
由于 Cloudflare 无法直接访问您的源站,因此请与您的服务器提供商联系,以获得有关解决 403 错误和修改规则的帮助。您应确保您的源站没有拦截 CloudFlare 的 IP。
如果请求触发了 Cloudflare 上的域名启用的 WAF 规则,Cloudflare 也将发送 403 响应。阅读更多内容:Web 应用程序防火墙(WAF)的作用是什么? Cloudflare 还可能对任何未被 SSL 证书涵盖的子域/域的请求发出403响应。
如果您看到了一个 403 响应,并且其响应正文中包含 Cloudflare 字样 ,则这是使用我们某些安全功能返回的 HTTP 响应码:
- Web 应用程序防火墙 Challenge 和 Block 页面
- 基本防护等级质询
- 大多数 1xxx Cloudflare 错误代码
- 浏览器完整性检查
- 如果您尝试使用 Cloudflare 颁发的证书通过 Cloudflare 访问第二级子域(例如
*.*.example.com
),您会在浏览器中看到 HTTP 403 错误,因为这些主机名并不存在在证书上。
如果您有疑问,请联系 Cloudflare 支持,并且附件您看到的消息的屏幕截图,或将该页面上的所有文本复制到工单中。
404 Not Found (RFC7231)
源站服务器无法或不愿找到所请求的资源。这通常意味着主机服务器无法找到资源。 要发送此问题的永久错误消息,应使用 410 错误代码。
这些错误通常在以下情形中发生:有人在您的站点上输错 URL、来自另一页面的链接已被破坏、之前存在的页面已被移动或删除,或者搜索引擎给您站点编制索引时出错。对于典型的网站,这些错误占总页面查看数的 3%,但通常无法由 Google Analytics 等传统的分析平台跟踪。
网站所有者通常会自定义产生该错误时的错误页面。例如,在 Apache 中实施自定义 404 页面。
Cloudflare 不会主动生成 404 错误,我们只代理来自源站的错误响应。在您开启的 Cloudflare 网站发现 404 时,应该联系您的主机提供商寻求帮助。
405 Method Not Allowed (RFC7231)
源站具有所请求的资源,但不支持用户使用的请求方法。
- 源站服务器必须提供
Allows
标头以及该资源支持的目标列表。
例如资源可以设置为不可改变 POST,从而只接受 GET。
406 Not Acceptable (RFC7231)
请求的资源的内容特性无法满足请求头中的条件(例如,通过 Accept-Charset
和 Accept-Language
标头)
此状态代码可以通过提供其他或次要合适的实体来解决。
407 Authentication Required (RFC 7235)
客户端未随着请求一起发送所需的身份验证。
408 Request Timeout (RFC7231)
未在所需的时间内收到完整的请求。
- 表示服务器不希望继续等待。
- 较少使用,因为服务器通常会直接关闭连接。
409 Conflict (RFC7231)
由于与资源的当前状态发生冲突,请求未完成。通常发生在 PUT 请求中,其中多个客户端正在尝试编辑相同的资源。
- 服务器应生成包含足够信息的负载,以便客户端识别冲突来源。
- 客户端可以而且应该再次重试请求
Cloudflare 将发送 409 响应,并生成 Error 1001:DNS Resolution Error。
410 Gone (RFC7231)
所请求的资源在源站永久遗失。
- 服务器建议应该删除引用资源的链接。
- 服务器无需使用410来代替 404 响应,也不是一定要进行此响应。
411 Length Required (RFC7231)
客户端未在 HTTP 标头中定义请求的 Content-Length
,这是获取资源所必需的。
- 客户端可以添加标头字段后重新发送请求。
412 Precondition Failed (RFC 7232)
服务器拒绝请求,因为资源无法满足客户端指定的条件。
例如,版本控制,客户端正在修改一个现有资源,因此设置 If-Unmodified-Since
标头,以匹配客户端下载资源并开始编辑的日期。如果在此日期之后以及上传编辑之前编辑了资源(可能是其他客户),则会生成此响应,因为上次编辑的日期将在 If-Unmodified-Since
中根据客户端日期生成。
Cloudflare 将发送此响应。详细信息请参阅:ETag 标头
413 Payload Too Large (RFC7231)
服务器拒绝处理请求,因为从客户端发送的负载大于服务器希望接受的有效负载。服务器可选择关闭连接。
- 如果此拒绝只会暂时发生,那么服务器应发送
Retry-After
标头,以指定客户端何时应再次尝试发出请求。
414 URI Too Long (RFC7231)
服务器拒绝,因为 URI 太长而无法处理。例如,如果客户端在 POST 之后尝试 GET 请求并使用异常长的 URI,则可能产生安全风险并生成 414。
Cloudflare 将对长度超过 32KB 的 URI 生成此响应
415 Unsupported Media Type (RFC7231)
服务器拒绝处理当前负载的格式。识别和解决此问题的一种方法是查看客户端请求中发送的 Content-Type
或 Content-Encoding
标头。
417 Expectation Failed (RFC7231)
服务器未能满足客户请求的 Expect
标头中指定的要求。
429 Too Many Requests (RFC6585)
客户端在根据服务器指定的时间内发送了太多请求。429通常会在触发“Rate Limiting (速率限制)”时产生。服务器可以作出响应并提供信息,使请求者在特定时间段之后重试。
当请求被速率限制时,Cloudflare 将生成并发送此状态代码。如果您网站的访问者收到这些错误代码,您将能够在 Rate Limiting Analytics 中看到此信息。
451 Unavailable For Legal Reason (RFC7725)
由于法律原因,服务器无法提供资源。
通常,搜索引擎(例如 Google)和 ISP(例如 ATT)受此响应代码影响,而源站不受影响。
- 响应会在响应正文中包括一条解释,其中包含法律要求的详细信息。
499 Client Close Request
Nginx 特定响应代码,表明当服务器仍在处理请求时,客户端主动关闭连接,使服务器无法返回状态代码。
- 这项错误将被记录在 Enterprise Log Share 和企业客户的控制面板的status code analytics中。