回答
这取决于你的目的。
301表示“这不是正确的URL,在其他地方查看并使用记住其他URL更好;不要回到这里!“。
302说:“这是你应该继续使用的正确的URL,但实际上让内容看起来在其他地方”。
303就像302,但专门用于表单提交后的重定向。
如果您的目的是一个网址缩写,那么303并不真正相关。它仍然可以工作,但是没有提供超过正常的302。对于一个URL缩短的人,我会说301会是最合适的,因为另一个URL是'真正'的。说302是试图保持地址的所有权和任何SEO动力所造成的自己的使用:有点粗鲁,但也许你想要粗鲁。
看看HTTP 1.1 Status Code definitions。不同的地位代码意味着不同的含义,因此鼓励不同的行为。尝试使用最符合你的用例的代码。
不同的状态代码有不同的含义。 HTTP规范描述他们:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
301 - 移动永久(和更改
302 - 这里找到
303 - 在这里找到您的回复,但使用GET,即使你用POST
开始了例如,如果我们考虑一个Atom提要,该提要的URL由于某种原因而发生了更改(可能它正在转移到Amazon S3或其他某些方面)。给定301结果,提要阅读器应该注意,提要已移动并更新它是订阅的,给定一个302,它会从它的新位置得到提要,但是碰到了o每次检查更新时,riginal服务器都会查找原始URI。 (在这种情况下303会很愚蠢)。
阅读http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html为答案。
10.3.2 301永久移动
请求的资源已被分配了一个新的永久性URI,该资源的任何将来参考应该使用返回的URI之一。在可能的情况下,具有链接编辑功能的客户端应自动将对Request-URI的引用重新链接到服务器返回的一个或多个新引用。除非另有说明,否则此响应可缓存。
10.3.3 302实测值
请求的资源下不同的URI临时驻留。由于重定向有时可能会发生变化,因此客户端应该继续使用Request-URI来处理将来的请求。如果由Cache-Control或Expires标头字段指示,此响应仅可缓存。
- 1. 使用MockMvc测试重定向URL的HTTP状态代码
- 2. 用于基于位置的重定向的HTTP状态代码
- 3. 可以重新使用416状态码的HTTP状态码吗?
- 4. 得到一个HTTP状态代码重定向
- 5. 要返回哪个HTTP响应状态
- 6. 要使用哪种状态码?
- 7. 语言重定向的HTTP状态代码
- 8. 返回重定向CouchDB中的HTTP状态码显示功能
- 9. 重定向页面本身 - 什么是正确的http状态码使用
- 10. HTTP状态码“8”无效,在重定向时出现问题
- 11. 在asp.net重定向后获取http状态码
- 12. 将用户重定向到特定国家时应发送哪个HTTP状态码?
- 13. 要使用哪种重定向类型?
- 14. Django重定向状态代码错误
- 15. CakePHP重定向状态码404
- 16. Coldfusion重定向页面状态码410
- 17. 如何使用NET:HTTP获取重定向的状态码?
- 18. 使用curl获取最终的重定向状态代码PHP
- 19. 用于功能重定向的HTTP状态
- 20. HTTP 2中引入了HTTP状态码308(“永久重定向”)吗?
- 21. 强制http/https:如何检测https以及重定向时要发送哪个状态头?
- 22. 捕获HTTP状态300用于重定向下载链接
- 23. 要返回域数据错误的哪个HTTP状态?
- 24. Vuex状态重定向
- 25. htacess重定向到子文件夹导致太多http状态301重定向
- 26. 使用HTTP-AUTH重定向?
- 27. 任何WSGI中间件在特定状态码上进行HTTP重定向?
- 28. HTTP管道中第一个可用的HTTP状态码在哪里?
- 29. Response.Redirect HTTP状态码
- 30. HTTP状态代码
302完全符合我的要求(使用Cache-Control:private) – 2009-11-13 01:53:31