2

我们使用 header('Location...') 对大量请求进行重定向。我们有 4% 的要求,但不这样做。

你有什么主意吗?

我们的请求来自所有国家。

4

1 回答 1

3

每个浏览器都需要实现位置标头。它是HTTP/1.1的一部分,因此如果有任何东西想称自己为“网络浏览器”,那么它需要实现 Location 标头。所以回答你的问题:每个网络浏览器都可以使用Location:.

尽管如此,您仍然需要考虑一些事情:

您需要记住的第一件事是header('Location需要使用绝对路径,因为在不同的浏览器中可能不支持相对 URL 或行为不正确(旧 IE 存在问题 - 根据 RFC 2616,位置标头需要是绝对的)。因此,检查您是否总是在重定向中使用绝对 URL 可能是值得的。

第二件事是您的跟踪系统可能无法正常工作。如果有人使用不跟踪策略或编辑他的HTTP 引荐来源网址,那么您的跟踪系统可能会误以为重定向没有发生。虽然它仍然存在,但只有您的跟踪器不会看到它发生。

第三也是最后一件事是网络爬虫,它们可能会完全忽略标题(它们几乎从不这样做,但它可能是这些罕见的情况之一,有人有一个成熟的垃圾邮件机器人试图爬过你的网站),或者发送不正确的响应。

我同意 4% 高得离奇,但它甚至可能发生在某个狡猾的机器人对您的网站进行一次长时间的爬网尝试中。

希望能帮助到你!

于 2013-02-14T15:27:43.580 回答