【问题标题】:Using 301/303/307 redirects for dynamic short urls对动态短网址使用 301/303/307 重定向
【发布时间】:2012-02-19 05:05:33
【问题描述】:

我们正在实施一个短网址服务,其中重定向目标每天都会发生变化。这些 url 将由移动设备访问,并且始终是 GET 请求。我试图了解哪个是最适合这项工作的 300 型重定向。

AFAIK 大多数网址缩短服务使用 301 重定向(永久移动)。但是,根据规范,303(查看其他)和 307(临时移动)重定向似乎是为我们的情况设计的......

  • 303/307 是否与 301 一样受到支持?规范说它们只在 HTTP 1.1 中实现——这意味着什么限制?
  • 选择 301 与 303/307 是否存在任何实际缓存或性能影响。
  • 对于 GET 请求,是否有任何理由选择 303 和 307?
  • 是否有任何理由使用 302 重定向?
  • 还有其他需要考虑的事情吗?

【问题讨论】:

    标签: http redirect http-status-code-301 url-shortener http-status-code-307


    【解决方案1】:

    303/307 是否与 301 一样受到支持?规范说它们只在 HTTP 1.1 中实现——这意味着什么限制?

    是/无。

    选择 301 与 303/307 是否有任何实际的缓存或性能影响。

    我不这么认为。

    对于 GET 请求,是否有任何理由选择 303 和 307?

    303 的语义与 307 不同。如果请求的资源是“其他地方”,则 303 不是正确答案。

    是否有任何理由使用 302 重定向?

    据我所知,不是真的。它与 307 语义相同,但 UA 可能会将 POST 请求重写为 GET。

    还有什么需要考虑的吗?

    http://greenbytes.de/tech/webdav/draft-ietf-httpbis-p2-semantics-18.html#status.3xx

    【讨论】:

    • 谢谢。因此,似乎选择 301 还是 307 的唯一实际含义是页面排名是如何转移的——你同意吗?
    • Yarin - 希望他们得到同样的对待。但我怎么知道呢?
    【解决方案2】:

    url缩短服务使用301(永久)的原因是:

    • 它不保存目标网址的页面排名。
    • 目标 url 不会改变(一旦你告诉 bit.ly/url1 重定向到 example.com/url1,你就不能修改它来重定向到 example.com/url2)。

    所有 302、303 和 307 都是临时重定向,根本不做这项工作。除了如果你想改变目标网址,你可以使用 302。例如example.com/contact 重定向到 example.com/temp/contact,但您打算稍后用 example.com/v2/contact 替换后者。

    【讨论】:

    • jcisio- 你的答案不清楚。 “所有 302、303 和 307 都是临时重定向,根本不做这项工作” - 不要做 what 工作?他们每个人都执行重定向,那么您指的是什么job
    • "Job" 是您所说的 URL 缩短服务。这样的服务不是简单的 URL 重定向,是有限制的。哪些约束?他们在我的回答中。
    猜你喜欢
    • 2011-04-17
    • 2010-12-03
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2015-03-05
    • 1970-01-01
    • 2016-04-03
    • 2014-05-28
    相关资源
    最近更新 更多