如何从HTTPS重定向到HTTP而不出现令人讨厌的错误消息

如何从HTTPS重定向到HTTP而不出现令人讨厌的错误消息,http,redirect,https,http-status-code-302,Http,Redirect,Https,Http Status Code 302,我想在HTTPS登录后将用户重定向到站点上的HTTP页面。在整个网站上使用HTTPS是不可能的 到目前为止,我掌握的情况如下: 用户将登录表单发布到安全站点 安全服务器验证凭据 安全服务器向客户端发送302重定向 这是可行的,除了在IE6中的我的机器上,用户会收到一条错误消息,因为默认情况下是在退出安全页面时发出警告。这些错误对我来说是一个可用性杀手,因此也是一个阻碍。我更改了它,使第3步是 服务器发送带有元刷新的html代码 但这是非常缓慢的;即使在我的本地机器上,它也明显比执行302

我想在HTTPS登录后将用户重定向到站点上的HTTP页面。在整个网站上使用HTTPS是不可能的

到目前为止,我掌握的情况如下:

  • 用户将登录表单发布到安全站点
    • 安全服务器验证凭据
    • 安全服务器向客户端发送302重定向
  • 这是可行的,除了在IE6中的我的机器上,用户会收到一条错误消息,因为默认情况下是在退出安全页面时发出警告。这些错误对我来说是一个可用性杀手,因此也是一个阻碍。我更改了它,使第3步是

    • 服务器发送带有元刷新的html代码
    但这是非常缓慢的;即使在我的本地机器上,它也明显比执行302重定向慢


    有没有更好的方法在人们使用的标准设置上实现无障碍重定向的目标?IE6占我们流量的20%-25%。还有,对于302重定向,哪些浏览器会发出警告,哪些浏览器不会发出警告,有人有什么好的信息吗?我正在考虑黑名单IE6,这样只有它能得到较慢的元刷新,而其他人能得到较快的302。

    我认为没有其他办法。这个错误消息是为了用户的利益,现在也出现在IE7和Firefox3中。据我所知,防止这种情况发生的唯一方法是在浏览器中添加受信任的站点

    更新:哦,所以这不是混合内容错误。我知道你指的是哪一个,尽管我仍然不认为你可以禁用这个错误。一般来说,安全错误是为了用户的利益,以保护他们免受潜在危险的网站,因此,(潜在不安全的)网站本身无法禁用

    我正在考虑黑名单IE6,这样只有它得到了缓慢的元刷新和其他人得到了快速302

    我会做那样的事。在正文中还包括一个简单的HTML链接,以便于访问

    请注意,其他一些浏览器在离开HTTPS站点时也会发出类似的警告,但在它们的情况下,会伴随一个(通常预先勾选)“不再问我”按钮。所以,当他们到达你的网站时,他们几乎肯定已经告诉你警告消失了。这并没有使警告变得毫无意义,但至少它缓解了问题

  • 安全服务器向客户端发送302重定向

  • 你不应该用302回复帖子。理论上认真对待HTTP RFC的浏览器可能会通过将表单重新发布到新的URL来响应。(具有讽刺意味的是,这将使IE6关于信息“被重新传输到不安全的站点”的警告减少误导性。)相反,使用“303查看其他”。

    恢复一个旧主题,但要使其完整发布以下内容,以便其他开发人员可以选择实施

    将bettween https移动到http而不显示警告消息的一种方法是使用javascript使用客户端重定向

    台阶

  • 用户在https表单上输入登录详细信息,然后单击登录按钮
  • 登录按钮将发回https表单进行登录验证(假设登录正确)将重定向到一个等待页面,该页面也位于https下,并显示消息(请稍候,网站正在重定向您)
  • 此保留页将javascript重定向到http页
  • 不会显示浏览器警告消息


    HTH

    如果您将表单发布到https站点,那么响应不是来自https站点吗?这会让用户继续使用https吗?@matt:响应来自https服务器,但该响应包含重定向说明。某些重定向模式会发出警告,其他模式则不会。警告很可怕,而且在我看来毫无意义(因为并非所有页面重定向模式都会发出警告)。@alex谢谢你这样对我做出判断。当你因为我公司其他人做出的我无法控制的决定而惩罚我时,这确实有助于解决我的技术问题。“在整个网站上使用HTTPS是不会发生的。”-听起来好像你是决策者,而且你对此非常坚决。向贵公司的决策者解释:1)加密登录的资源已经用完,然后被浪费;2) 默认加密,完全避免您的技术问题;3) 你诱使你的用户产生一种虚假的安全感和隐私感;4) 询问他们是否希望他们的个人信息通过互联网传播;5)与时并进,因为信任在今天这个时代是有价值的。你需要放松。我意识到这是从2009年开始的,但我留下评论的原因是,现在或将来访问这个问题的任何人都可以通读这些评论,看看还有其他选择。你的问题仍然是相关的,并在搜索结果中排名靠前,这就是我如何来到这里的。我并没有试图攻击你,但我确实想指出建立HTTPS会话的缺陷,只是为了在你试图解决重定向问题后立即取消它。如果你觉得我不尊重你,我向你道歉。我在FF3或IE7中都没有看到这条信息。只有IE6。问题是,这个消息并不总是触发。使用302重定向是否比使用元刷新更安全?可能不会,这就是为什么较新的浏览器不显示消息的原因。302响应实际上是由J2EE框架发送的。我只使用response.sendRedirect(url)。不幸的是,sendRedirect不提供对其他30x状态代码的访问,但您可以手动执行:response.setStatus(HttpServletResponse.SC_SEE_other);响应.setHeader(“位置”、“…”)@bobnice:手动操作会起作用,但实际上我避免这样做,因为我们还使用了sendRedirect方法的其他副作用,即url重写。这个解决方案听起来很实用,所以我对它进行了升级,但它遇到的问题与元刷新解决方案相同,即