大型网站的 HTTPS 实践(四):协议层以外的实践

  • 时间:
  • 浏览:1

朋友考虑下以下几种清况 下,部署 https 的方案。

然后 因为用户把网站当作工具使用,不到你变快给出响应的然后 ,全都的实现就不好了。后续2个每段朋友介绍下有有哪些优化的抉择。

PIC5

因为将域名限制在有限的范围,维持和有有哪些域名的连接,合并你什儿 数据,加进有 spdy,http2.0 来保证并发,是上能 满足朋友的需求的。

Spdy 对于连接复用率的提升非常有效,因为它能支持连接上的并发请求,全都浏览器会尽量在你你什儿 链接上保持复用。

全都的站部署 https,在已有证书且 webserver 支持的清况 下,只不到把主域名替换为 https 接入,然后 把资源连接修改为 https:// 因为 //。

常见的有以下的你什儿 清况 :

原文发布时间:2015-05-09

优点:前端改动相对简单,不容易再次出现 https 下还有 http 的资源问题。

https 的目的全都保证传输过程的安全,因为不到主域名上了 https,然后 主域名加载的资源,比如 js,css,图片不到上 https,会为什么在么在么样?

HTTP 协议 (RFC2616) 规定一三个小 域名最多不到建立超过 2 个的 TCP 连接。然后 随着互联网的发展,一张网页的元素不到来过多,传输内容不到大,一三个小 域名 2 个连接的限制因为远远不到满足现在网页加载速度单位的需求。

6

负责流量接入的团队将可控的接入环境改造为 http 和 https 都支持,全都前端工程的工作相对就少你什儿 。大每段然后 将链接从 http:// 替换为 // 即可. 在主域名是 https 的清况 下,其它资源就能自动从 https 协议下加载。你什儿 第三方资源为什么在么在么办?一般来说不到有三种选用,一迁移到个人所有所有的 cdn 因为 idc 吧,二强制要求第三方个人所有所有能支持 https。

PIC1

Cdn 使用 https 常见的方案有:

全都这里全都没做好,全都清况 连网站的基本功能都不到正常使用。

全都刚接触 https 的会思考,我是是是否是是是假如有一天站点的主域名换了 https 就上能 ?答案是不行。

PIC4

比如 axyz 的个人所有所有 blog,域名是 axyzblog.com。加载主域名下的 js 和图片。

最简单有效的措施全都在主域下对连接进行预建,上能 通过请求你什儿 静态资源的措施。然后 全都还是不容易做到极致,因为使用哪个连接,并发2个还是浏览器控制的。类式你对 a 域名请求一三个小 图片,浏览器建立了一三个小 连接,再请求一张图片的然后 ,浏览器很离米 率都都上能 复用连接,然后 当 a 域名不到加载 10 个图片的然后 ,浏览器很因为就会新建连接了。

简单的定义: 资源只从本站的主域, 主域的子域,因为自建 / 可控的 cdn 域名加载,几乎不到第三方资源。因为网站有三种的形态学 就不到,或不想改造为全都的类型,部署 https 就相对容易。Google Twitter 是是否是是非常好的范例。优点:因为改成全都的站点,替换 https 就比较容易。缺点:因为不到改造,不到要很大的决心,毕竟几乎不到使用复杂的第三方资源了。

全都用户看见你你什儿 链接会习惯性的点”是”,全都非 https 的资源就被禁止加载了。非 ie 的浏览器全都也会阻止加载你什儿 危害程度较高的非 https 资源(类式 js)。朋友发现移动端浏览器的限制目是是否是是略松你什儿 。

Firefox 2

Ie10

实际上对于不同的站点来说,https 的部署措施和难度有很大的区别。对于一三个小 大型站点来说,让 webserver 支持 https,以及对 webserver 在 https 协议形态学 上做你什儿 优化,在迁移的工作比重上,因为只占到 20%-40%。

目前因为不到浏览器遵守你你什儿 规定,各浏览器针对单域名建立的 TCP 连接数如下:

简单的定义:资源只从本站的主域因为主域的子域名加载。

从效果上来说,不到达到保证网站传输过程安全的目的,因为你的 js,css,图片仍然有被劫持的因为性,因为有有哪些内容被篡改 / 嗅探了,不到 https 的意义就一蹶不振 了。

Safari 5

HTTPS 的全站部署,给朋友提供了能外理大每段问题的选项。能让一三个小 做技术的人想看 个人所有所有的努力外理了用户的问题,这全都最棒的收获。

上能 采用再次跳转的措施,既然 HTTPS 下不到给 HTTP 传递 referer,朋友上能 先从 HTTPS 访问一三个小 可控的 http 站点,把不到传递的内容倒进你你什儿 http 站点的 url 中,然后 再跳转到目标地址。

面对困难和挑战,有宽裕的动力支持着朋友前进:https 上线后,劫持等因为因为的用户功能异常,隐私泄露的反馈大幅减少。

https 下重建连接的时间成本比 http 更高,对于后边提到的简单的大型站点, 上能 用小量域名就能满足需求,对于百度全都富展现样式较多的搜索引擎来说,页面因为展示的资源种类不到来过多。而不类式型的资源又是由不同的域名 (不同的产品 因为第三方产品) 提供的服务,换一三个小 词搜索就因为不到重新建立你什儿 资源的 ssl 链接,会让用户感受到卡顿。

浏览器

<meta name=”referrer” content=”always”> 传递完正的 url

对于不支持 meta 传递 referrer 的浏览器,类式 IE8, 朋友为什么在么在么办呢?

HTTPS 不到想像中难用和可怕,全都不到经过优化。与朋友共勉。

从百度的优化经验来看看,因为不开启 HSTS,用户在浏览器直接访问主域名,再通过 1502 跳转到 HTTPS。增加的时间平均会有 150ms+,其中 1502 跳转和 ssl 握手的因素各占一半。然后 对于后续的请求,朋友做到了对绝大每段用户几乎无感知。

缺点:通常全都的实现下,用户的访问速度单位会变快,比如从 2.5 秒变为 3 秒,如上述的理由,用户还是能接受的。对第三方要求高。

复杂的定义:资源不到从內部域名加载。

网上介绍 https 的文章何必 多,更鲜有分享在大型互联网站点部署 https 的实践经验,朋友在考虑部署 https 时是是否是是重重的疑惑。

域名对访问速度单位的影响具有两面性:域名多,域名解析和建立连接的时间就多;域名少,下载并发度又不足英文。

复杂的定义:从本站的非主域,因为第三方站点的域名有小量的第三方资源不到加载,多再次出现在你什儿 平台类,因为有复杂内容展现的的网站。

表格 1 浏览器单域名建立的最大并发连接数

那 HTTPS 协议下,一张网页到底该有2个域名呢?你你什儿 觉得不到定论,取决于网页不到加载元素个数。

浏览器在设计上早就考虑的全都的清况 ,会有相应的提示。具体的实现依赖浏览器,类式地址栏锁形标记从绿色变为黄色, 阻止这次请求,因为直接弹出非常影响用户体验的提示 (主全都 IE),用户会感觉厌烦,疑惑和担忧安全性。

也上能 尝试你什儿 你什儿 发措施,让浏览器在访别问我的网站然后 就建立过 https 连接,全都 session 都都上能 复用。HSTS 都上能 有效的减少跳转时间,可惜对于复杂的网站来说,开启不到考虑清楚全都问题。

6

从上表看出,单个域名的连接数基本上是 6 个。全都不到通过增加域名的措施来增加并发连接数。在 HTTP 场景下,全都的措施不到有哪些问题。然后 在 HTTPS 连接下,因为 TLS 连接建立的成本比较高,增加并发连接数有三种就会带来较大的延迟,全都对域名数不到一三个小 谨慎的控制。

这 150ms+ 还有全都上能 优化的空间,朋友会持续优化用户的体验。

既然从协议深度图无法减少握手对速度单位的影响,那上能 提前建立连接,减少用户上能 感知的握手延迟呢?当然是上能 的。思路全都预判当前用户的下一三个小 访问 URL,提前建立连接,当用户发起真实请求时,TCP 及 TLS 握手都因为完成,只不到在连接上发送应用层数据即可。

<meta name=”referrer” content=”origin”> 只传递站点,不蕴藏路径和参数等。 

有点儿是 HTTP2 即将大规模应用,而 HTTP2 的最大形态学 全都多路复用,使用多个域名和多个连接无法有效发挥多路复用和压缩的形态学 。

连接复用率上能 分为 tcp 和 ssl 等不同的层面,不到分开进行分析和统计。

复杂的定义:同上。

热心的用户无缘无故会向朋友反馈遇到的各种问题。在然后 ,有时即使朋友选用了是劫持的问题,都都上能 外理问题的措施也非常有限。每当你你什儿 然后 ,个人所有所有总会产生你什儿 无力感。

访问速度单位要求:等待英文时间不长,用户对访问速度单位的心理预期较高。

PIC6

全都的站点,上能 努力推动所有相关域名升级为支持 https。朋友用下图举例说明下全都修改会因为一三个小 网站的链接发生要怎样的改变。

6

全都人刚接触 https 的然后 ,觉得不全都部署证书,让 webserver 支持 https 就行了吗。

对于复杂的大型网站来说,HTTPS 的部署有全都工作要完成。

PIC2

6

本文为朋友介绍百度 HTTPS 的实践和你什儿 权衡, 希望以此抛砖引玉。

有时不到将 form 提交到第三方站点,而第三方站点又是 http 的地址,浏览器会有不安全的警告。上能 和 referrer 的跳转传递采取类式的逻辑。

PIC7

朋友上能 把个人所有所有的网站替换为 https,然后 一般的站点是是否是是外链,要让外链都 https 目前还不太现实。全都网站不到从 referrer 中判断流量来源,然后 对于搜索引擎全都的网站来说,referer 的传递还是比较重要的。因为不做任何设置,让人发现在 https 站点中点击外链并不到将 referrer 带入到 http 请求的头部中(http://tools.ietf.org/html/rfc7231#section-5.5.2)。现代的浏览器上能 用 meta 标签来传递 refer。(http://w3c.github.io/webappsec/specs/referrer-policy)

PIC3

然后 全都对 referer 和 form 等内容的方案,并是是否是是完美的外理措施,因为全都还是增加了不安全的因素(劫持,隐私泄露等 )。理想清况 不到用户升级符合最新规范的浏览器,以及推进更多的站点迁移至 https。

以全站 https 接入的 facebook 举例。第三方厂商想在 facebook 上线一三个小 游戏。facebook:请提供 https 接入吧。第三方想:能赚钱啊,还是提供下 https 接入吧。全都,足够强势,有吸引力,合作协议措施方是是否是是提供 https 的能力的话,这是完正可行的。因为你的平台接入的是是否是是你什儿 人所有个人所有开发者,然后 还赚不到2个钱的清况 下,全都就行不通了。

简单来说,因为你使用 http 的协议来播放视频,不到浏览器仍然会有不安全的提示。全都你有有三种选用,1 让视频源提供 https。2 使用非 http 的协议,如 rtmp 协议。

访问速度单位要求:用户等待英文时间长因为强需求,用户对访问速度单位的耐受程度较高。比如门户,视频,在线交易类(比如火车票 机票 商城)网站。

本文来自云栖合作协议措施伙伴“linux中国”

全都就比较麻烦了,主域资源容易适配 https,在 cdn 加进载的资源还不到 cdn 服务商支持 https。目前各大 cdn 的服务商正在逐渐提供 https 的支持,不到迁移的朋友上能 看看个人所有所有使用的 cdn 是是是否是是提供了这项能力。你什儿 cdn 会对 https 流量额外收费。

在 https 迁移的过程中,也会有不少热心的用户向朋友反馈遇到的各种问题。