Ale*_*sky 94 http http-status-codes http-status-code-301 http-status-code-308
HTTP 301和308状态代码有什么区别?
301 (永久移动):此和所有将来的请求应定向到给定的URI.
308 (永久重定向):应使用另一个URI重复请求和所有将来的请求.
他们似乎很相似.
cas*_*lin 200
301,302和307在RFC 7231中,语义和HTTP/1.1协议的内容的当前参考,定义了301(永久移动)和302(实测值)的状态码,其允许从改变请求方法POST来GET.本说明书中还定义了307(临时重定向)状态码不允许从改变请求方法POST来GET.
查看以下详细信息:
该
301(永久移动)状态代码表示目标资源已经被分配了一个新的永久性URI,该资源的任何将来参考应该使用封闭的URI之一.[...]注意:由于历史的原因,用户代理可以从改变请求方法
POST来GET用于随后的请求.如果不希望出现此行为,307则可以使用(临时重定向)状态代码.
的
302(实测值)状态代码表示目标资源下不同的URI临时驻留.由于重定向有时可能会被更改,因此客户端应该继续使用有效请求URI来处理将来的请求.[...]注意:由于历史的原因,用户代理可以从改变请求方法
POST来GET用于随后的请求.如果不希望出现此行为,307则可以使用(临时重定向)状态代码.
的
307(临时重定向)状态代码表示该目标资源暂时位于如果它执行一个自动重定向到该URI不同的URI和用户代理必须不改变请求方法.由于重定向可能会随着时间的推移而发生变化,因此客户端应继续使用原始有效请求URI以用于将来的请求.[...]注意:此状态代码与
302(Found)类似,不同之处在于它不允许将请求方法更改POST为GET.此规范未定义301(Moved Permanently)(RFC 7238,但308为此目的定义状态代码(永久重定向)).
308在RFC 7238已创建来定义308(永久重定向)状态代码,是类似于301(永久移动),但不允许从改变请求方法POST来GET.
现在,308状态代码由RFC 7538(已废弃RFC 7238)定义.
该
308(永久重定向)状态代码表示目标资源已经被分配了一个新的永久性URI,该资源的任何将来参考应该使用封闭的URI之一.具有链接编辑功能的客户端应尽可能自动将对有效请求URI的引用重新链接到服务器发送的一个或多个新引用.[...]注意:此状态代码类似于
301(Moved Permanently),但不允许将请求方法更改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 |
+------------------------------------------------------------+-----------+-----------+
Run Code Online (Sandbox Code Playgroud)
看看下面的图表(从这个页面中提取):