【问题标题】:Is it possible to redirect non-HTML files with HTTP? And chaining redirects?是否可以使用 HTTP 重定向非 HTML 文件?并链接重定向?
【发布时间】:2010-03-19 15:35:05
【问题描述】:

我一直在考虑一种简洁的负载平衡方式,并且需要能够从多个位置在 HTML 页面上加载图像而无需重写 URL(每次加载时)

所以我需要做的是有一个 URL,它是“静态”URL。比如http://example.com/myimage.png 图像实际上并不包含在example.com 中。所以example.com 执行 302 或 301 或 307 HTTP 响应以导致重定向到2.example.com。浏览器如何处理这种情况下的图像?此外,浏览器如何处理多个重定向,例如,如果 2.example.com 也没有包含它并且它转到 3.example.com ? (注意,我之所以这么问,是因为除了 HTML 页面,我从未在任何东西上看到过 301 重定向)

另外,最好使用哪个状态码。 301 表示“永久移动”,这个“移动”不是永久的,所以我不希望它被缓存。我应该使用307吗?搜索引擎和现代浏览器是否支持?

【问题讨论】:

    标签: http redirect response


    【解决方案1】:

    重定向是一个 HTTP 概念,适用于任何可以通过 HTTP 传递的资源,而不仅仅是 HTML。链接重定向和非 HTML 重定向在大多数现代浏览器中都可以正常工作。

    如果您想要临时重定向,请使用 302,除非您还想要重定向 POST 和 PUT。问题是大多数实现会在获得 302 的 POST 或 PUT 之后为新的资源地址发出 GET。

    请注意,303 和 307 是特定于 HTTP 1.1 的。

    【讨论】:

    • 是的,但是现代浏览器和搜索引擎蜘蛛是否支持这一点?
    • 是的,两者都支持。
    【解决方案2】:

    我建议不要进行这样的负载平衡。负载平衡不是 3xx 响应的目的。

    HTTP 协议具有缓存功能,有助于减少服务器负载。还有用于负载平衡的服务器技术。这些技术发展得很好,会更加稳定和可重复使用。

    【讨论】:

    • 负载平衡只是我的一个想法..我只是想尝试一下..(例如,我不会把它投入生产或任何东西)
    【解决方案3】:

    正如本尼迪克特 C 所说,我认为你找错人了。

    如果你想做负载平衡,那就做负载平衡。轮询 DNS 是最简单的方法(在许多方面比更昂贵的解决方案更有效)。如果您必须尝试在具有不同 FQDN 的服务器之间进行负载平衡,请在 javascript 中生成 URL 客户端。

    您帖子的剩余部分适用于有关重定向的其他问题。有很多关于搜索引擎优化的坏建议。谷歌拥有大约 92% 的世界市场,并发布了关于他们如何蜘蛛和排名网站的非常详细的规范。在您的域内重定向不应影响您在任何有能力的搜索引擎中的排名。域外重定向只会提高目标的排名。

    是的,浏览器对单个请求的重定向次数实施了限制 - 但它因浏览器而异。

    【讨论】:

      猜你喜欢
      • 2015-09-26
      • 2015-01-07
      • 1970-01-01
      • 2017-02-17
      • 1970-01-01
      • 1970-01-01
      • 2022-08-20
      • 2018-12-12
      • 1970-01-01
      相关资源
      最近更新 更多