首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >延迟升级到HTTPS (TLS/SSL)

延迟升级到HTTPS (TLS/SSL)
EN

Stack Overflow用户
提问于 2014-04-01 00:26:22
回答 2查看 282关注 0票数 2

HTTP是快速的(在初始页面上),而HTTPS是安全的。我有一个站点example.com,它只需要在用户登录时才能安全(它使用安全cookie进行身份验证)。

由于速度是第一印象中最重要的因素之一,我想提供正常的HTTP页面(http://example.com),然后使用Javascript懒洋洋地升级到HTTPS。

代码语言:javascript
复制
if ( location.protocol === 'http:' ) {
    $.ajax({
        url: 'https://example.com',
        cache: true,
        success: function() {
            window.top.location.replace('https://example.com');
        }
    );
}

这样做会导致页面在加载新页面时“闪现”。是否有一种对用户来说不太明显的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-04-04 04:14:13

闪存将来自第二个https url中的资产/css/映像等的加载。

虽然http更快,但SEO的好处是让公众面对站点https的一部分,这将解决双重领域问题。

预取

如果它们在登录屏幕上,并且您知道它们很快就会被重定向到保护https版本,那么您可以开始预装https协议上的资产。

HTML5预取可能会很好,How can I preload a page using HTML5?

<link rel="prefetch" href="/path/to/prefetch" />

链接到与https一致的资产

您可以使用https协议链接到http站点上的所有资产,不需要预加载。这可能会增加任何不在https版本上的人的开销。因此,您可能只想在https上加载徽标/标头图形和css/js。这将提高感知的性能,因为当域切换主资产和样式时,就会像其他任何重新加载一样迅速恢复正常。

CDN

最终的解决方案是将资产推送到像Amazon这样的内容交付网络。因此,这两个域都加载了相同的资产,您必须使用https,否则在http域上链接到https时会收到警告。当用户切换时,浏览器将已经保存了所有资产的缓存副本。这将加快页面加载的速度。由于并发请求限制,浏览器有(6-8),这意味着您的服务器将交付像HTML这样的重要内容,并且浏览器可以同时从CDN加载资产。

SPDY

回到话题,考虑到协议升级,我将开始研究谷歌的SPDY。& IE11也有支持。其安全性和比HTTP或HTTPS更快的。结合一些WEBP图形加载一个CDN,你将面临接近光速的危险。usage

票数 5
EN

Stack Overflow用户

发布于 2014-04-10 17:55:41

您想要的,只能在php中完成。

代码语言:javascript
复制
if($_SERVER['SERVER_PORT'] != 443) {
  $url = "https://{$_SERVER[HTTP_HOST]}{$_SERVER[REQUEST_URI]}";
  header("Location: $url");
  exit;
}
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22774647

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档