【问题标题】:Http url going to https url without using permanent redirectHttp url 转到 https url 而不使用永久重定向
【发布时间】:2021-10-06 18:30:17
【问题描述】:

我刚刚在我的网站上添加了对 SSL 的支持

但与大多数网站不同的是,如果您访问 Http,它不会自动更改为 Https 系统管理员通过配置永久重定向 301 解决了这个问题,但是服务器也用于验证来自我的 Java 桌面应用程序的许可证,并且永久重定向导致代码失败,因为它只收到 Http 响应 301,所以我们不得不删除 301

那么用户是否有另一种方法可以输入非 ssl url 并将其更改为安全版本,而不会破坏我的应用程序代码,该代码也会调用非 ssl url。

【问题讨论】:

    标签: ssl https


    【解决方案1】:

    对于浏览器你可以redirect with meta-refresh or javascript而不是HTTP;即使您对应用程序请求的响应是 HTML,Java 也不会解释 meta 或 js,而 API 通常不是。这不是永久重定向,因此它满足您在 Q 中不必要地声明的约束,但您可以添加 HSTS(仅在 HTTPS 连接上),以便 后续 浏览器请求此域(以及可选的任何子域)在一段时间内(通常是几个月或一年)被强制 HTTPS在发送之前

    【讨论】:

    • 我真正不明白的是,解决方案听起来好像我在我的 http 页面中放入了一些东西以重定向到我的 https 页面,但我只有一个页面。无论用户输入 http 还是 https 他们都会得到相同的页面,那么如果他们已经在 https 页面上然后重定向会发生什么?
    • 具有相同路径但不同方案的URL是不同的URL,例如http://myhost/xyzhttps://myhost/xyz,您的服务器必须以不同方式处理它们。 301 已经是这样了——如果你用status=301 location=https://blah 同时响应http 请求和https 请求,那么它是一个无限重定向并导致浏览器失败。 (事实上​​,已经有很多针对各种系统的 Q 都存在这个错误。)
    • 我意识到它们是不同的 url,我不知道它是如何工作的。我不是系统管理员,但他们都获得了相同的网页,我没有同一页面的 https 和 http 版本,我正在使用 Apache tomcat,如果相关的话,我的应用程序是一个 Java 战争文件。
    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 2019-02-07
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    • 2012-08-05
    • 2021-10-09
    相关资源
    最近更新 更多