HTTP 301
和308
状态代码之间有什么区别?
301
(永久移动):此请求和所有以后的请求都应定向到给定的URI。308
(永久重定向):应使用另一个URI重复该请求和以后的所有请求。
他们似乎很相似。
HTTP 301
和308
状态代码之间有什么区别?
301
(永久移动):此请求和所有以后的请求都应定向到给定的URI。
308
(永久重定向):应使用另一个URI重复该请求和以后的所有请求。
他们似乎很相似。
Answers:
301
,302
并307
在RFC 7231中,语义和HTTP / 1.1协议的内容的当前参考,定义了301
(永久移动)和302
(实测值)的状态码,其允许从改变请求方法POST
来GET
。该规范还定义了307
(临时重定向)状态码,该状态码不允许将请求方法从更改POST
为GET
。
在下面查看更多详细信息:
该
301
(永久移动)状态代码表示目标资源已经被分配了一个新的永久性URI,该资源的任何将来参考应该使用封闭的URI之一。[...]注意:由于历史原因,用户代理可以将请求方法从
POST
更改GET
为后续请求。如果不希望出现这种情况,则307
可以改用(Temporary Redirect)状态代码。
的
302
(实测值)状态代码表示目标资源下不同的URI临时驻留。由于重定向有时可能会更改,因此客户端应继续将有效请求URI用于将来的请求。[...]注意:由于历史原因,用户代理可以将请求方法从
POST
更改GET
为后续请求。如果不希望出现这种情况,则307
可以改用(Temporary Redirect)状态代码。
的
307
(临时重定向)状态代码表示它是否执行自动重定向到该URI暂时下一个不同的URI和用户代理目标资源驻留不能改变的请求方法。由于重定向会随时间变化,因此客户端应继续将原始的有效请求URI用于将来的请求。[...]注意:此状态代码类似于
302
(已找到),但是它不允许将请求方法从更改POST
为GET
。该规范没有为301
(永久移动)定义等效项(RFC 7238,308
为此目的定义了状态代码(永久重定向))。
308
在RFC 7238已创建来定义308
(永久重定向)状态代码,是类似于301
(永久移动),但不允许从被改变的请求方法POST
来GET
。
的308
状态代码现在由定义RFC 7538(即废弃的RFC 7238)。
该
308
(永久重定向)状态代码表示目标资源已经被分配了一个新的永久性URI,该资源的任何将来参考应该使用封闭的URI之一。具有链接编辑功能的客户端应在可能的情况下自动将对有效请求URI的引用重新链接到服务器发送的一个或多个新引用。[...]注意:此状态代码类似于
301
(永久移动),但是它不允许将请求方法从更改POST
为GET
。
硒,我们有以下内容:
+-----------+-----------+
| Permanent | Temporary |
+------------------------------------------------------------+-----------+-----------+
| Allows changing the request method from POST to GET | 301 | 302 |
+------------------------------------------------------------+-----------+-----------+
| Doesn't allow changing the request method from POST to GET | 308 | 307 |
+------------------------------------------------------------+-----------+-----------+
迈克尔·克罗帕特(Michael Kropat)整理了一组决策图,有助于确定每种情况的最佳状态代码。请参阅以下2xx
和3xx
状态代码:
POST
为GET
”?这是否意味着无法处理已过帐的表单,但是可以处理新的新表单,然后在下一个请求中将其过帐?
POST
(安全)请求更改为to GET
(不安全的原因是,将数据添加到url来传递数据-可以保存url -包括密码)请求可能是一个安全问题,通常应避免,除非您知道可以安全地进行更改。如今,似乎普遍支持使用307、308,而不是301、302。但是您应该进行验证。
308
就像是一个侧向无穷大,因此是永久重定向,也永远不会更改请求方法-它也是永久的,固定的请求类型。然后,307
是1
下面的步骤-永久/保留请求方法(获取/发布),但重定向到临时位置:7-看起来像“向左转”或临时绕道,而7也类似于k,因此“保留”请求方法。