NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

StackOverflow 转向默认使用 HTTPS

  • 2017-06-14
  • 本文字数:1312 字

    阅读完需:约 4 分钟

StackOverflow 的首席架构师 Nick Craver 发表了一篇博文,宣布 StackOverflow 迁移到 HTTPS。在该过程中,他们经历了一些技术挑战,包括对数百个域的支持、URL 迁移、用户生成内容处理,以及如何达到网站所需的严格性能需求。

这次迁移总体上历时四年,但 Craver 强调,该工作一直以来都并非是工作重点。例如,网站上并不存在财务信息或是信用卡支付,网站信息也并非需安全防护的高价值信息。Craver 指出,事实上,StackOverflow 总是将性能置于安全之上:

我应指出,性能是我们的首要驱动力,而非网站的安全性。虽然我们也需要安全性,但是安全本身并不值得我们付出对整个网站部署 HTTPS 所花费的时间。

Craver 解释说,HTTP/2 的广泛采用及在性能上的优点是他们升级到 HTTPS 的主要驱动力。这些优点包括: Request/Response 多路复用(Multiplexing)服务器推送技术(Server Push), 头部压缩(Header Compression)、数据流优先(Stream Prioritization)和更少的域(Origin)连接等。由于浏览器并不支持在HTTP 上实现HTTP/2,因此迁移到HTTPS 不仅是一个性能上的需求,同时也是一个安全上的需求。

StackOverflow 具有上百个域和子域。站点的主证书中包括了 StackOverflow 的全部主域,以及由通配符表示的域。在这种多个域的证书和 IP 一致的情况下,可利用 HTTP/2 提供的机制,支持浏览器对多个域使用单一的共享连接,这将提高性能。

在转向 HTTPS 的过程中,还需要做一些域迁移工作。例如,需要将“meta”域从“meta.*.stackexchange.com”转化为“*.meta.stackexchange.com”。Craver 特别指出,这样做是因为通配符必须位于域名的最左边,单一的通配符更易于维护。

此外,网站中的敏感 cookies 现在是从顶级域继承而来的,原先可访问它们的域已经被移动了。Craver 给出了一个例子,“SendGrid”标签现已移动到“stackoverflow.email”域中。

Craver 还指出,网站中存在着大量 HTTP 用户生成内容,例如提问中给出的图片、用户配置信息、Youtube 视频等。在迁移时所采取的第一步,是对所有新的用户生成内容强制使用 HTTPS,将 HTTP 内容限定为遗留内容。然后,下一步是对遗留内容的迁移。其中的大部分内容仅需要进行查找并替换即可。对于那些团队把握不准的内容,如果内容工作异常,那么它或者被转化为 HTTPS,或者被转化为一个链接。

JavaScript 代码中也存在着数以千计的链接,这些链接基本上是使用 HTTP 的,甚至位于不同的“meta”域中。据 Craver 介绍,他们是逐个代码分别处理的,使用“<site>.Url(‘/path’)”调用替换了这些连接。只要启用了特性标识,这将从根本上转化这些链接为 HTTPS。

Craver 强调,他们也非常重视避免丢失任何来自 Google 的流量,这是网站流量的重要来源,因而也是网站收入的主要来源。尽管 Google 所需的更改非常简单(将 301 跳转从 HTTP 更改为 HTTPS,并更新权威链接),团队也必须要慎重,以免犯错误。

迁移最后还会涉及 WebSocket,需要将所有事情转换为 WebSocket 加密,这也是为避免影响网站性能而在功能上的直接需要。据 Craver 介绍,他们可一次同时打开近五十万个并发的 websocket 连接。

该博文的内容很长,但是值得一读。

查看英文原文: Stack Overflow Becomes HTTPS by Default

2017-06-14 19:001865
用户头像

发布了 227 篇内容, 共 71.4 次阅读, 收获喜欢 27 次。

关注

评论

发布
暂无评论
发现更多内容

新零售SaaS架构:订单履约系统架构设计(万字图文总结)

不在线第一只蜗牛

架构 系统架构 零售 订单系统

为什么SD-WAN成为了组网发展大趋势?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

2024年大语言模型的微调

快乐非自愿限量之名

人工智能 语言模型 LLM

淘宝商品详情数据丨商品搬家丨商品采集丨商城建站

Anzexi58

API 文档

手把手带你认识GaussDB轻量化运维管理工具

华为云开发者联盟

数据库 后端 华为云 华为云GaussDB 华为云开发者联盟

2024年Java面试最全攻略:金三银四求职跳槽必刷题目1000+

架构师之道

编程 java面试

课程预告 | 学姐领航,共学PolarDB-X:从入门到精通实操课

阿里云数据库开源

阿里云 分布式数据库 课程 polarDB PolarDB-X

常见的虚拟化技术有哪些呢?

小齐写代码

云服务器与云主机的性能对比:优势与应用场景分析

一只扑棱蛾子

云服务器

SD-WAN保障零售业的持续经营

Ogcloud

SD-WAN 企业组网 SD-WAN组网 SD-WAN服务商 SDWAN

HTTP Authorization 头的角色与作用

Liam

程序员 前端 后端 HTTP Authorization

Python中那些简单又好用的特性和用法

EquatorCoco

Python Linux 运维 开发语言

自动生成PPT的AI软件!这5款值得力荐!

彭宏豪95

职场 PPT 在线白板 AIGC AI生成PPT

SD-WAN能解决企业网络的哪些问题?

Ogcloud

SD-WAN 企业网络 SD-WAN组网 SD-WAN服务商 SDWAN

守护更多女性健康,华为云GeminiDB助力美柚数据库高效稳定迁移

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 华为云GeminiDB

AI应用开发:pgvector在文本搜索中的革命(上篇)

张文平

人工智能 postgresql AI 应用开发 pgvector

AI应用开发:你知道怎么用好pgvector吗(下篇)

张文平

数据库 postgresql AI 开发 pgvector

Java面试挂在线程创建后续,不要再被八股文误导了!创建线程的方式只有1种

EquatorCoco

Java 程序员 面试 开发语言

百度智能云发布专用向量数据库 VDB 1.0,全新设计内核开启性能狂飙

Baidu AICLOUD

向量数据库

云迁移中的CT-CMS任务操作指南

天翼云开发者社区

云计算 数据 迁移

软件测试学习笔记丨Python语法与数据结构-函数定义与调用

测试人

软件测试

2024上海国际智能科技及创新展览会

AIOTE智博会

科技展 创新展

百度智能云音视频处理产品 MCP 推出数字水印技术,为数字内容资产保驾护航

Baidu AICLOUD

数字水印

流量变现的终极逻辑

老张

副业 码农副业 流量变现

商业世界的基本法则:通过业务协作提升财务水平

智达方通

企业财务管理

GaussDB(DWS)运维利刃:TopSQL工具解析

不在线第一只蜗牛

Java sql 运维

Docker与低代码开发:重塑软件开发的未来

EquatorCoco

Docker 运维 低代码 容器化

利用API接口进行竞品价格监控

Noah

效率起飞!天翼云并行文件服务HPFS高效应对AI时代大模型训练存储挑战!

天翼云开发者社区

数据库 云计算 AI 大模型

妇女节:打开AI视界,成就“她力量”

飞桨PaddlePaddle

百度 开发者 百度飞桨 女性力量 三八妇女节

StackOverflow转向默认使用HTTPS_DevOps & 平台工程_Andrew Morgan_InfoQ精选文章