【问题标题】:Http AND https on my website我网站上的 Http 和 https
【发布时间】:2012-10-04 06:19:18
【问题描述】:

我有一个雄心勃勃的计划: 我希望将诸如注册、登录、交易之类的页面定向到 HTTPS 服务器,而其他操作例如浏览我的网站,例如“联系我们或反馈或条款和政策”,我不想打扰 HTTPS 服务器,我只想要它是 HTTP

我怎样才能做到这一点?

我对这个“选择性协议”的主要目的是加快我的网站加载时间

还有一个无关紧要的小问题:浏览器是否“cache” 来自本地主机的页面?至少chrome没有,浏览器会缓存来自本地主机(XAMPP)的网页吗?

【问题讨论】:

    标签: http https webserver localhost browser-cache


    【解决方案1】:

    这是常见的做法。只需使用绝对 URL 链接到安全页面(例如注册和登录),这样您就可以指定 https 协议。其他链接可以保持相对。

    一个问题是,如果您在使用 https 提供的页面上使用相对链接,它们将保留在 https 中。例如,如果您有一个在所有页面上呈现的通用顶部导航栏……那么在普通 (http) 页面上,例如您的主页,该栏中的相对链接也将是 http。但是,在诸如注册之类的 https 页面上,如果用户使用该顶部导航栏点击离开,则相对链接将是 https,“继承”周围页面的协议。只是需要注意的事情。如果不需要,调用 https 并不理想,因为处理此类请求的计算成本更高。

    更新

    与@user1537158 的进一步讨论澄清说,正在为所有页面生成 https,这不是预期的行为。此外,服务器环境是由 Apache 提供的 PHP。

    PHP 代码可能不会导致这种情况发生,某些 Apache 配置更可能是罪魁祸首。可能有一个“重写规则”导致了这种行为。 “重写规则”是 Apache 的指令,告诉它以某种方式修改传入的请求,例如,重定向它或拒绝它。

    以下是我所指内容的简要概述: http://wiki.apache.org/httpd/RewriteHTTPToHTTPS

    因此,在这种特殊情况下的下一步:

    1. 让您的系统管理员仔细检查配置。它可能位于 httpd.conf 或 Apache 引用的其他配置文件中,也有一种方法可以在 .htaccess 文件中执行此操作,该文件可以驻留在所服务的各个目录中。
      • 调查为什么所有 URL 都被重写为 https
      • 设置重写规则以强制某些 URL 为 https
    2. 确保在导航到安全页面时,代码(PHP、模板、javascript 等)中的链接和操作正确引用了绝对 URL,包括 https 协议。

    【讨论】:

    • 你能详细说明一下“绝对”和“相对”吗,因为我几乎看不懂你回答的第二段
    • 所以,你的意思是,如果我没有指定协议(相对链接),那么它被认为是 HTTP 并将绕过 HTTPS 服务器,而如果我使用绝对链接,HTTPS 服务器将进入玩吗?
    • 相对链接不会为自己指定协议,它们会从包含页面“继承”它们。因此,如果包含页面是 http,则相对链接将是 http。如果包含页面是 https,则相对链接将是 https。无论如何,这是一个侧面问题。您最关心的是,您需要使用绝对 URL 来链接到您的安全页面,因为这是唯一允许您在必要的“https://”前面添加的格式。
    • 好的,但目前,我所有的网页都是 HTTPS !那我该怎么办?
    • 好吧,如果你能负担得起,那也没什么大不了的。例如,如果您访问 Facebook(或任何银行网站等),您会看到每个页面都以 https 提供。这对安全性有好处,因为这样您就不会让您的用户受到试图捕获他们经过身份验证的会话的攻击,让坏人假装是他们。同样,大多数网站都不会这样做,因为为每个请求进行额外处理会更昂贵,但如果您对此感到满意,那就去吧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    相关资源
    最近更新 更多