一文了解阿里云CDN HTTP2.0

简介: 本文由阿里视频云高级技术专家空见撰写,主要介绍HTTP2.0的历史、特性、如何使用和使用之后的性能对比验证。

背景介绍

要了解HTTP2.0,先了解一下HTTP超文本传输协议的历史(HyperText Transfer Protocol),这是为了实现互联网上内容传输提出的协议,其历史伴随着互联网的发展。整个HTTP协议发展历程如下:
image

一句话介绍:
HTTP 0.9:基于GET请求的文本传输协议
HTTPS:安全的HTTP传输协议
HTTP 1.0:增加HTTP头、扩展PUT、POST等方法
HTTP 1.1:长连接、流水线支持,最广泛使用的HTTP传输协议
SPDY:针对HTTP的增强,工作在SSL层之上、HTTP层之下
HTTP 2.0:安全高效的下一代HTTP传输协议

根据W3Techs统计,到现在为止,互联网上前1000万的网站,已经有27.9%支持了HTTP2.0。

HTTP2.0的特性

内容安全(Security),因为HTTP2.0是基于HTTPS的,天然具有安全特性,通过HTTP2.0的特性可以避免单纯使用HTTPS的性能下降。
二进制格式(Binary Support),HTTP1.x的解析是基于文本。HTTP 2.0将所有的传输信息分割为更小的消息和帧,并对它们采用二进制格式编码,基于二进制可以让协议有更多的扩展性,比如引入了帧来传输数据和指令。

多路复用(MultiPlexing),这个功能相当于是长连接的增强,每个request可以随机的混杂在一起,接收方可以根据request的id将request再归属到各自不同的服务端请求里面。另外多路复用中,也支持了流的优先级(Stream dependencies),允许客户端告诉server哪些内容是更优先级的资源,可以优先传输。

image

Header压缩(Header compression),HTTP请求中header带有大量信息,而且每次都要重复发送,HTTP2.0使用编解码来header的传输,通讯双方各自cache一份header fields表,减少header的开销。

服务端推送(Server push),同SPDY一样,HTTP2.0也具有server push功能。目前,有大多数网站已经启用HTTP2.0,如淘宝 利用chrome控制台可以查看是否启用HTTP2.0:chrome://net-internals/#http2 可以看到当前页面使用HTTP2.0的情况:

image

如何使用HTTP2.0

目前阿里云CDN已经全面支持HTTP2.0,大部分主流浏览器也已经支持该功能,但是需要服务端改造后才能使用,不过如果你使用了阿里云CDN,源站即便不支持也能够享受HTTP2.0的特性,目前在官网可以自助开启:

1、 开启HTTPS证书 因为HTTP2.0是依赖于HTTPS的,在控制台开启HTTP2.0需要提前开启HTTPS,目前阿里云CDN已经支持免费证书功能,提前打开该功能即可:
image

2、 开启HTTP2.0功能:
image

性能对比验证

目前我们提供了一个对比测试工具,可以比较直观的看出来HTTP1.1和HTTP2.0的加载页面的差异,针对180个小图片,HTTP2.0显示了强大的优势:
image

小伙伴也可以通过下面页面,自己体验本地使用HTTP2.0和HTTP1.1的对比效果:
https://http2.cdnpe.com/index.html

HTTP2.0和SPDY的关系

SPDY是Google提出的用来解决老的HTTP协议不足的一些新的方案,可以说是综合了HTTPS和HTTP两者优点并加以改进的传输协议。实践证明SPDY解决了HTTP的一些顽疾,在性能上提升显著,最终IETF(Internet Enginerring Task Force)正式考虑制定HTTP2.0的计划,最后决定以SPDY为基础起草HTTP2.0,SPDY的部分设计人员也被邀请参与了HTTP2.0的设计。

Google的测试表明,页面加载时间相比于HTTP1.x减少了64%:
image

参考

HTTP0.9:https://www.w3.org/Protocols/HTTP/AsImplemented.html
HTTP1.0:https://tools.ietf.org/html/rfc1945
HTTP1.1:https://tools.ietf.org/html/rfc2616
HTTP2.0:https://tools.ietf.org/html/rfc7540
Wiki:https://en.wikipedia.org/wiki/HTTP/2
Golang http2:http://http2.golang.org/gophertiles
Learning HTTP/2: A Practical Guide for Beginners

活动推荐

【TechDay】阿里云CDN Tengine开源技术沙龙-上海站,将在8月29日下午阿里虹桥中心展开,多位专家现场探讨CDN QUIC、TLSv1.3、直播、Tengine实践等话题,参与活动即可赢取阿里云定制礼品,点击了解活动详情与报名:https://yq.aliyun.com/event/359

相关实践学习
Serverless极速搭建Hexo博客
本场景介绍如何使用阿里云函数计算服务命令行工具快速搭建一个Hexo博客。
目录
相关文章
|
3月前
|
安全 API 持续交付
阿里云云效产品使用问题之如何从流水线访问内网平台的HTTP接口
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
4月前
|
域名解析 网络协议 CDN
网站接入阿里云CDN实现域名加速全流程
阿小云网站已通过ICP备案在广州节点上线,但为提升全国用户访问速度,计划接入CDN。以下是4步CDN接入教程:1) 开通阿里云CDN服务;2) 添加加速域名;3) 使用DNS解析验证域名归属权;4) 配置CNAME实现域名与CDN节点关联。详细指南见阿里云CDN官方文档。
177 2
|
4月前
|
弹性计算 缓存 安全
【阿里云弹性计算】阿里云ECS与CDN结合:构建高性能全球内容分发网络
【5月更文挑战第26天】阿里云ECS与CDN结合打造高性能全球内容分发网络,通过ECS的弹性伸缩和安全可靠性,配合CDN的全球覆盖、高可用性及安全防护,提升访问速度,减轻服务器压力,优化数据传输。以WordPress为例,通过配置CDN域名和ECS,实现高效内容分发,提高系统扩展性和稳定性。此解决方案满足用户对访问速度和稳定性的高要求,为企业提供优质的云计算体验。
150 0
|
4月前
|
缓存 网络协议 Serverless
阿里云CDN简介和使用流程
本文档介绍了如何在阿里云上配置和使用CDN服务。首先,需要注册并实名认证阿里云账号,然后购买CDN服务。接着,添加要加速的域名,通过CDN控制台和阿里云云解析DNS进行配置,并验证CNAME设置是否生效。之后,配置源站信息,可以选择OSS域名、IP、源站域名或函数计算域名作为源站。最后,设置缓存规则,如缓存过期时间、状态码过期时间、自定义HTTP响应头等,以优化资源访问效率。
阿里云CDN简介和使用流程
|
4月前
使用阿里云语音通知http批量推送模式获取用户回执短信内容
本文使用阿里云语音通知配置http批量推送模式获取用户回执信息,并进行测试
358 0
|
4月前
|
缓存 边缘计算 网络协议
阿里云CDN介绍
阿里云CDN介绍
94 0
|
4月前
|
域名解析 网络协议 API
阿里云DNS常见问题之阿里云OpenAPI的cdn20180510包没有DescribeCdnSubList如何解决
阿里云DNS(Domain Name System)服务是一个高可用和可扩展的云端DNS服务,用于将域名转换为IP地址,从而让用户能够通过域名访问云端资源。以下是一些关于阿里云DNS服务的常见问题合集:
|
4月前
|
弹性计算 Ubuntu 网络协议
阿里云CDN功能Quick Start
本文通过在国外Region ECS创建ECS,通过ECS部署应用,然后使用CDN加速部署应用,全链路测试体验阿里云CDN通过IP加速服务的功能。
103 0
|
4月前
|
域名解析 网络协议 安全
阿里云CDN
本文介绍阿里云CDN产品中涉及的基本概念,便于您更准确地理解和使用CDN产品。
118 5
|
弹性计算 缓存 运维
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
【运维知识进阶篇】用阿里云部署kod可道云网盘(DNS解析+CDN缓存+Web应用防火墙+弹性伸缩)(三)
195 0