跳转到内容
搜索文档

3xx 重定向

最后更新 查看 MarkdownAgent 设置

3xx 状态码是一类响应,表示 HTTP 客户端必须采取其他操作才能获取完整的所请求资源。

重定向位置应按以下方式之一指定:

  • 在响应的 Location 标头字段中,适用于自动重定向。
  • 在响应的 payload 中,可选地包含指向正确位置的超链接。

300 Multiple Choices

300 Multiple Choices 状态表示所请求资源有多个可用选项,客户端可以选择其中一个。

更多信息请参阅 RFC 7231

常见用例

该状态通常在资源有多种表示形式或格式时使用。例如:

  • 提供不同格式的多个视频版本(例如 MP4、AVI)。
  • 提供具有不同扩展名或压缩类型的文件列表。
  • 为具有多重含义的术语呈现词义消歧选项。

响应可能包含指向首选选项的 Location 标头,或提供带有可用选项超链接的 payload,以便客户端做出决定。

Cloudflare 特定信息

Cloudflare 通常会绕过 300 Multiple Choices 响应进行自动重定向,以确保最佳性能与用户体验。

301 Moved Permanently

301 Moved Permanently 状态表示所请求的资源已被分配新的永久 URI。今后对该资源的所有引用应使用所附 URI 之一。

更多信息请参阅 RFC 7231

常见用例

该状态常用于告知客户端:

  • 资源已永久迁移到新 URI。
  • 搜索引擎应更新其索引以反映新 URI。
  • 书签或其他已保存引用应更新。

响应通常包含指定新 URI 的 Location 标头。这使大多数 User-Agent 能够自动重定向。

Cloudflare 特定信息

Cloudflare 无需查询源站即可生成 301 Moved Permanently 响应。更多信息请参阅 Redirect Rules

302 Found

302 Found 状态也称为临时重定向,表示所请求的资源暂时位于不同 URI。与表示永久迁移的 301 Moved Permanently 状态不同,302 Found 状态专门用于临时场景。

虽然 User-Agent 可以遵循 Location 标头以检索资源,但不应像 301 Moved Permanently 那样替换当前 URI。

更多信息请参阅 RFC 7231

常见用例

该状态通常用于:

  • 在维护或升级期间临时重定向流量。
  • 在不更改已保存引用的情况下,将用户引导至备用资源。
  • 在不进行永久更改的情况下,对资源的不同版本进行 A/B 测试。

Cloudflare 特定信息

Cloudflare 可以生成这些响应,从而无需向源站发送请求。了解 Cloudflare 如何借助 Redirect Rules 帮助生成重定向。

303 See Other(自 HTTP/1.1 起)

303 See Other 状态表示客户端应使用 GET 请求从不同 URI 检索资源。与 301 Moved Permanently 重定向不同,重定向位置上的资源不一定等同于最初请求的资源。

更多信息请参阅 RFC 7231

常见用例

303 状态通常用于响应 POSTDELETE 请求,表示源站已成功处理数据,并支持正确的缓存行为。

虽然初始 303 响应本身不可缓存,但后续 GET 请求的响应可以缓存,因为它绑定到不同的 URI。

Cloudflare 特定信息

Cloudflare 允许通过 Redirect Rules 配置 303 重定向,从而直接在边缘无缝处理这些响应。这种方法通过避免对源站的不必要请求来提升性能。

304 Not Modified

304 Not Modified 状态表示所请求的资源在客户端缓存中可用且有效。这意味着自客户端上次请求以来,源站未修改该资源,因此客户端无需再次连接源站即可使用缓存资源。接收 304 响应的缓存要求定义于 RFC 7234 第 4.3.4 节

更多信息请参阅 RFC 7232

常见用例

当客户端发送条件 GETHEAD 请求以验证缓存资源时,会使用 304 Not Modified 响应。服务器确认缓存版本仍然最新,使客户端无需重新下载即可使用该资源。这有助于减少不必要的数据传输并提高效率。

304 响应包含:

  • 无消息正文:304 响应本身不包含实际资源(如图片或网页内容)。它只是确认缓存版本有效。
  • 必需标头:响应包含重要元数据(例如 Cache-ControlContent-LocationDateETagExpiresVary),用于告知客户端如何管理缓存资源。这些标头与资源以 200 OK 响应发送时附带的标头相同。

Cloudflare 特定信息

当过期请求必须在源站重新验证时,Cloudflare 会发送 304 响应,确认缓存版本与源站版本匹配。响应包含 CF-Cache-Status: REVALIDATED 标头,Cloudflare 使用 If-Modified-Since 标头验证版本。更多信息请参阅 ETag Headers

305 Use Proxy(已弃用)

该状态码表示请求必须通过 Location 标头中指定的代理路由,而不能直接发送到源站。然而,由于安全顾虑,305 Use Proxy 状态码已被弃用。

306 Switch Proxy(已弃用)

该状态码表示后续请求应通过指定代理发送。然而,306 Switch Proxy 状态码已弃用,不再使用。

307 Temporary Redirect

307 Temporary Redirect 状态表示所请求的资源已临时移动到 Location 标头中指定的不同 URI。与 302 重定向不同,在自动跟随重定向时,原始请求方法(例如 GETPOST)必须保持不变。这可确保资源位置的临时更改不会破坏请求的预期行为。User-Agent 可以使用 Location 标头自动跟随重定向,但不应为将来的请求替换原始 URI。

更多信息请参阅 RFC 7231

常见用例

307 状态适用于在服务器维护或升级期间临时迁移资源,同时确保保留原始请求方法。它也常用于将流量引导至促销、活动或特别活动的临时 URL,而不更改将来请求所使用的原始 URI。

Cloudflare 特定信息

Cloudflare 可高效处理 307 Temporary Redirect 响应,实现临时重定向而无需在源站进行更改。可使用 Redirect Rules 进行配置。

308 Permanent Redirect

308 Permanent Redirect 状态表示所请求的资源已永久移动到 Location 标头中指定的新 URI。与 301 重定向不同,在自动跟随重定向时,原始请求方法(例如 GETPOST)必须保持不变。User-Agent 应使用 Location 标头跟随重定向,并将原始 URI 替换为新 URI,以用于后续请求。

更多信息请参阅 RFC 7538

常见用例

308 Permanent Redirect 状态常用于资源永久迁移、API 版本升级、域名或路径迁移,以及在重定向中保持方法完整性。此外,它通过将链接权重(link equity)转移到新 URI 来帮助 SEO。

Cloudflare 特定信息

Cloudflare 可高效处理 308 Permanent Redirect,在保持请求完整性的同时完成重定向。可使用 Redirect Rules 配置这些重定向。

这篇文档对您有帮助吗?