Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

[翻译] rfc-7231#6.4

翻译:次碳酸钴
鼠标 hover 可见原文,如果发现错误请@我以便修正,谢谢捧场~

重定向 3xx rfc7231#section-6.4

3xx(重定向)类状态码表示为了满足请求下一步行动需要被用户代理拿到 。 如果 Location 头字段(7.1.2 部分)被提供,用户代理可以自动重定向它的请求到这个 Location 头字段值描述的 URI 引用上,即便响应的是一个未知的状态码。 自动重定向需要注意,对于 4.2.1 部分的定义的非已知安全方法,用户可能不希望重定向一个不安全的请求。

重定向分为下列类型:

1. 状态码为 301(永久移动)、302(发现)、307(临时重定向)的重定向表示资源可以在 Location 字段提供的另一个 URI 上得到

2. 状态码为 300(多重选择)的重定向提供一个选择,在所有可以描述原始请求目标的资源中选择一个匹配的资源。

3. 状态码为 303(查看其它)的重定向表示重定向到一个通过 Location 字段指定的另一个资源上,给请求呈现一个间接的响应。

4. 状态码为 304 的重定向表示重定向到一个先前缓存的结果上。

注意: 在 HTTP/1.0 中,重定向类型的状态码 301(永久移动)和 302(发现)首次被定义。 早期的用户代理对使用什么方法来重定向(是保持原来的方法还是重写成 GET 方法)产生了分歧, 尽管 HTTP 最初就将 301 和 302 定义为前者的语义,将 303 定义为后者的语义,然而主流实现渐渐地将 301 和 302 融合到后者的语义。 在第一版的 HTTP/1.1 中就增加了 307(临时重定向)来定义前者语义,以免受到分歧实现的影响。 10 年来,大部分用户代理对 301 和 302 做方法重写,这份规范让原始请求是 POST 的情况可以选择合适的处理方式。

客户端应该检测并介入对循环重定向的处理(例如「无限」重定向循环)。

注意: 这份规范的一个早起版本推荐最多 5 次重定向。 内容开发者应该意识到一些客户端实现了这样的固定次数限制。

网名:
54.144.24.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^