【问题标题】:Why do some web apps use intermediate page before redirection?为什么有些 Web 应用在重定向之前使用中间页面?
【发布时间】:2011-05-12 00:30:04
【问题描述】:

在编辑文章或登录某些论坛或 CMS 后,您会看到一个中间页面,上面写着“感谢 X,如果您在几秒钟内没有重定向,请点击此处”。

为什么他们这样做而不是直接进入页面?

【问题讨论】:

    标签: language-agnostic


    【解决方案1】:

    我这样做是为了从目标站点中隐藏引荐来源网址。所以,如果你在:

    http://host/this/that?some=private;cgi=parameters;that=you+don't+want+exposed
    

    然后通过一个简单的重定向器发送一些将隐藏该 URL,最终目标只会看到类似的通用内容

    http://host/redir?u=http://example.com/the-target-url
    

    作为推荐人。重定向页面也可用于点击跟踪。

    【讨论】:

      【解决方案2】:

      这样做的原因有很多;而且大部分都很傻:

      1. 开发人员可能根本不知道如何设置服务器端重定向。 (傻)
      2. Web 应用程序可以设置为某些需要重定向的操作不允许使用 redir= 参数,类似的东西(与 1 非常相似,但仍然很愚蠢)
      3. 开发人员可能正试图从中间页面的访问者那里挤出更多的广告印象。 (非常愚蠢)
      4. Web 应用程序可能在某些不允许服务器端重定向的极端“安全模式”下运行(是的,你猜对了,傻。)
      5. 开发人员可能希望非常明确地说明用户刚刚做了什么,以确保用户知道刚刚发生了什么。 (从表面上看,这似乎是明智的。但是,如果用户的生活依赖于状态消息,他们实际上无法阅读状态消息;这很愚蠢。)
      6. 编辑:使用它而不是 303 Found 来实现PRG。 (愚蠢,请参阅以上所有内容。)

      编辑:当我说他们中的大多数很傻时,我并不是说其中一些很傻,而有些则不是。我的意思是说他们有的很傻,有的很傻。

      【讨论】:

      【解决方案3】:

      当您执行HTML 重定向(在HTML 的标题上使用meta 标记)时,您通常会得到它。如果您使用标头 Location: index.php 执行 HTTP 重定向,您将不会得到。

      我碰巧发现 HTML 重定向在旧的移动浏览器上工作得更好一些,所以我不得不在某些项目中使用它而不是 HTTP 重定向。除此之外,没有特定理由使用其中之一。这只是口味问题。也许您所指的论坛希望您注意到您将被重定向......

      【讨论】:

      • 这不仅仅是口味问题:如果您在页面中插入元标记;这对可能有兴趣了解您的内容在哪里的浏览器和缓存代理没有帮助;但是如果您发送 301 Moved Permanently,他们可以相应地更新他们的书签和缓存。
      猜你喜欢
      • 2013-08-22
      • 1970-01-01
      • 2012-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-27
      • 1970-01-01
      相关资源
      最近更新 更多