HTTP2基础教程-读书笔记(三)

2018 年 2 月 9 日 前端黑板报 楔子

前面两篇记录了HTTP的历史网络请求、页面渲染的过程以及HTTP/1的一些问题,本篇就来讲一下迁移HTTP/2需要考虑的一些问题。


迁移HTTP/2说简单无非就是升级到支持 h2 的Web服务器或在你的网站前面加上支持 h2 的CDN。这对没有历史包袱或实验性的产品当然是对的,但实际情况并非如此。多数站点是从 HTTP/1一路走来的,所以得考虑向前兼容。即考虑的情况如下或者更多:

  • 用户使用的浏览器对 h2 的支持情况

  • Web服务器对 h2 的支持情况

  • 迁移到TLS 的可能性

  • 网站上的第三方资源

  • 如何兼容旧版本客户端

  • 网站基于 h2 的优化(以后和 h2 性能篇一起讲)


浏览器对 h2 的支持

在升级 h2 之前,要先查看自己用户使用的浏览器对 h2 支持情况的数据,下面是 caniuse.com 官网的数据:

这些浏览器的数据一般是从自己统计平台或者第三方平台获取,比如:百度统计、友盟等。


Web服务器对 h2 的支持

在权衡之后,决定升级。首先要对当前站点使用的服务器进行改造,那我们就要考虑现在使用的服务器有对应的版本支持 h2 吗以及当前的业务允许我们去升级到对应版本吗?下面列出了一些服务器对 h2 的支持:


迁移到TLS

因所有的主流浏览器只能访问基于 TLS 的 h2,所以在升级的时候同样要保证对 TLS 的支持。增加对 TLS 的支持需要考虑如下问题:

  • 了解当前在使用的Web服务器:每种服务器配置 HTTPS 的方式略有差异

  • 获得证书:获取渠道有自签名证书、从Let's Encrypt获取和花钱购买

  • 保护私钥

  • 为增加的服务器负载做准备:增加TLS的支持,同时也增加了一些消耗,比如:握手时间、加解密时间等。优化的宗旨就是:复用之前的连接,减少握手和加解密的时间

  • 紧跟潮流:安全是不断变化的世界,紧跟变化很重要

  • 定期检测:定期使用工具检测 TLS 配置(https://www.ssllabs.com)


网站的第三方资源

第三方资源对我们来说有时很重要,就像上面说的浏览器统计数据等。有时这些数据对公司的技术决策,甚至业务发展都有帮助。可又因为第三方资源相对独立,我们没有办法对其操控,所以在升级 h2 的时候需要考虑如下问题:

  • 第三方资源是否支持 HTTPS?

  • 是否有计划支持 h2 ?

  • 是否对性能优化,作为关键考量指标?


第三方资源对页面性能的影响举足轻重,需要多加考虑。


如何兼容旧版本客户端

有些用户不喜欢尝试新鲜事物,所以你的用户中可能会存在使用旧版本客户端的,但这些用户又是你的金主但迁移到 h2 又势在必行,那如何解决呢?提供 HTTP/1的备用站点,供旧版本客户端访问并给出版本升级的提示。


个人总结

新技术是美好的,但升级之路并不是一帆风顺



前端黑板报

前端路上的益友

 
登录查看更多
0

相关内容

Web Service是一个平台独立的,低耦合的,自包含的、基于可编程的web的应用程序,可使用开放的XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。Web Service技术, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据。Web Service是自描述、 自包含的可用网络模块, 可以执行具体的业务功能。
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
专知会员服务
30+阅读 · 2020年5月20日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【教程推荐】中科大刘淇教授-数据挖掘基础,刘 淇
专知会员服务
80+阅读 · 2020年3月4日
硬核实践经验 - 企鹅辅导 RN 迁移及优化总结
IMWeb前端社区
5+阅读 · 2019年5月6日
干货 :数据分析师的完整流程与知识结构体系
数据分析
8+阅读 · 2018年7月31日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
【入门】数据分析六部曲
36大数据
18+阅读 · 2017年12月6日
Python NLP入门教程
Python开发者
9+阅读 · 2017年11月19日
Kaggle入门手册
Datartisan数据工匠
14+阅读 · 2017年11月9日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
Learning to See Through Obstructions
Arxiv
7+阅读 · 2020年4月2日
Arxiv
101+阅读 · 2020年3月4日
Arxiv
14+阅读 · 2019年11月26日
Conceptualize and Infer User Needs in E-commerce
Arxiv
3+阅读 · 2019年10月8日
Arxiv
7+阅读 · 2019年5月31日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
30+阅读 · 2019年3月13日
Foreground-aware Image Inpainting
Arxiv
4+阅读 · 2019年1月17日
VIP会员
相关VIP内容
【2020新书】实战R语言4,323页pdf
专知会员服务
100+阅读 · 2020年7月1日
专知会员服务
30+阅读 · 2020年5月20日
干净的数据:数据清洗入门与实践,204页pdf
专知会员服务
161+阅读 · 2020年5月14日
【实用书】Python爬虫Web抓取数据,第二版,306页pdf
专知会员服务
117+阅读 · 2020年5月10日
【资源】100+本免费数据科学书
专知会员服务
107+阅读 · 2020年3月17日
【教程推荐】中科大刘淇教授-数据挖掘基础,刘 淇
专知会员服务
80+阅读 · 2020年3月4日
相关资讯
硬核实践经验 - 企鹅辅导 RN 迁移及优化总结
IMWeb前端社区
5+阅读 · 2019年5月6日
干货 :数据分析师的完整流程与知识结构体系
数据分析
8+阅读 · 2018年7月31日
各编程领域最好的入门书籍
程序猿
27+阅读 · 2018年7月29日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
【入门】数据分析六部曲
36大数据
18+阅读 · 2017年12月6日
Python NLP入门教程
Python开发者
9+阅读 · 2017年11月19日
Kaggle入门手册
Datartisan数据工匠
14+阅读 · 2017年11月9日
Python NLP 入门教程
大数据技术
19+阅读 · 2017年10月24日
Python3爬虫之入门和正则表达式
全球人工智能
7+阅读 · 2017年10月9日
相关论文
Learning to See Through Obstructions
Arxiv
7+阅读 · 2020年4月2日
Arxiv
101+阅读 · 2020年3月4日
Arxiv
14+阅读 · 2019年11月26日
Conceptualize and Infer User Needs in E-commerce
Arxiv
3+阅读 · 2019年10月8日
Arxiv
7+阅读 · 2019年5月31日
Arxiv
8+阅读 · 2019年5月20日
Arxiv
30+阅读 · 2019年3月13日
Foreground-aware Image Inpainting
Arxiv
4+阅读 · 2019年1月17日
Top
微信扫码咨询专知VIP会员