干货|HTTPS:除了保障安全,eBay还能做到更多!
HTTPS不仅关乎安全性,而且它还带来了许多技术优势,进一步加深我们对先进技术的实践应用。今天一起让我们来看看,当eBay开始使用HTTPS后所能应用的新技术有哪些?
近年来,向HTTPS迁移的网站数量急剧增长,这种迁移带来了诸多优势。其一就是能够利用更先进的技术来提高系统性能和用户体验。在eBay,我们在将页面迁移到HTTPS的同时,也开始探索在HTTPS环境下,哪些新技术能够被引入?eBay在应用这些新技术时最关注的是性能方面,有鉴于此,我们在基础架构中增加了一系列新功能,其中包括:
这是我们的首要任务。
一旦我们将页面迁移至HTTPS,HTTP/2就会启用。相关基础工作已经在CDN上完成了,这使得切换变得十分自如。为了充分利用HTTP/2,我们必须删除静态资源(CSS/JS/图像)的域分片,并将其合并在一个或两个域名下。域分片曾被认为最适用于HTTP/1.1,如今可能会对HTTP/2产生不良影响。HTTP/2则能够如愿帮助我们抵消HTTPS带来的性能开销。
切换至HTTP/2时关键要考虑连接聚合问题。大多数网站使用CDN来托管静态资源,且静态资源的域和页面主要部分的域是不同的。这意味着你可能无法在两者之间实现相同的HTTP / TCP连接共享(HTTP/2的最大优势)。这就是连接聚合能够发挥其效用之处,即使是页面的动态部分也可以和静态资源一样由CDN提供商进行处理。我们仍在对此做出努力。就目前而言,尽管静态资源分散在几个域名中,我们还是对其进行了连接聚合。
我们对所有静态资源运用能够感知内容的URL。
这意味着每个URL都是由其内容的哈希值来表示的。静态资源(如CSS、JS、图像等)的内容只要出现些许微小变化,就会产生新的URL。所以在我们的案例中,浏览器在刷新时发出条件验证请求,随后服务器响应304是完全没有必要的。为了避免这种开销,我们在所有静态资源的头信息中增加了“cache-control: immutable”。当页面被重复访问时,诸如CSS等重要资源就不会发生重复的网络请求。浏览器对immutable的支持力度在不断提高。目前,浏览器只能在HTTPS的请求中才能实现上述功能。
我们非常积极地对Brotli进行研究,并且发现它的优势相当明显。
最近我们还获得了一些非常鼓舞人心的比较结果,将来Brotli会被运用到静态文本资源的使用之中。目前,我们尚未将这种压缩方式100%投入生产环境之中,原因是我们正在改善资源管道以获得最大的Brotli压缩级别(进行11级的预压缩)。在当前的实验中,Brotli压缩级别相对较低。如果一旦有了成熟的启动方案,我们就会发布一篇博文,其中包括更详尽的数据比较结果。
我们已经将Service Workers置于站点。
我们在产品页面尝试离线体验,最终目标是为了构建功能齐全的PWA(Progressive Web Apps渐进式的网络应用)。我们的离线体验模式也在近期的Chrome开发峰会上得到亮相。要使用Service Workers,你需从头重建站点作为PWA,这是个普遍观念。但这种观念并不一定是对的。Service Workers也可以运用到你现有的网站之中来快速提高当前的缓存、预取以及导航行为。最为重要的是,这样做能帮助你理解有关Service Workers生命周期的各种细微差别,尤其在对生产环境进行部署时更是如此。
如果网站是通过HTTPS提供的,那以上提及的几个功能是很好的切入点, 可以用来尝试提高性能和用户体验。许多主流网站已经利用了这些技术并取得了优异成绩。在你现有的基础架构之上,尽管实现每个功能的复杂程度可能有所不同,但总体意识显然更为重要,也有助于我们对未来做出相应的计划。
作者
Senthil Padmanabhan
VP, Fellow
随着HTTPS的积极应用
更多先进技术得以实践
我们的网络平台如今已蓄势待发
为全球eBay用户提供更优质的体验
技术/资讯/文化