Brotli是一种开源的压缩算法,可以让数据在互联网上以更快的速度传输。

现代的网页通常包含了由大量的HTML, CSS和JavaScript代码编写的图片、视频或其他大型文件数据,导致了网页打开的速度很慢。如果能有一种好的压缩算法将这些内容和数据进行压缩后传输,那么用户只需要等待很短时间就可以完全加载整个页面上的内容。

2015年9月谷歌发布了Brotli压缩算法,直到现在才开始被大多数的浏览器所兼容。

现在最新的HTTP服务器程序Apache和nginx也支持了Brotli压缩算法,谷歌和一些商业公司也开始对Brotli提供支持服务。和谷歌的gzip解压缩格式比起来,Brotli能在此基础上将数据在压缩20~25%。它通过一本英语、西班牙语、汉语、印地语、俄语、阿拉伯语的常用字、词汇字典,结合机器语言,特别是HTML和JavaScript的常用术语,能够将数据比gzip, bzip2, LZMA等压缩算法的基础上进一步进行压缩,减少了数据内容的容量大小,使得网页在加载时速度更快。

Cloudflare公司的工程师们为了验证Brotli压缩算法比其他压缩算法更好,还特意做了实验来说明。还有http://Discouse.org的联合创始人Sam Saffron给各种压缩算法的文件压缩大小和压缩速度打分,事后证明Brotli不仅全面吊打其他压缩算法,还能支持HTTPS网络加密下的压缩。

有些网络服务运营商已经开始部署Brotli压缩服务,例如DreamHost公司在2016年12 月就发布了DreamPress插件,可以在使用nginx来TLS连接时,直接调用谷歌在Brotli内置的ngx模块来部署Brotli。

当然目前还有一些浏览器并不支持这种压缩算法,比如苹果的safari浏览器,微软也只有Edge浏览器才支持,老旧的IE并不支持,而且微软自家的web server套件IIS目前还没有免费的插件可以支持Brotli压缩,这就意味着使用IIS作为web server的网站也不无法支持Brotli压缩传输。

用户如果想要检查网站是否使用了Brotli压缩进行传输,可以在浏览器的页面解码的头部分,会看到br:

最早使用的是“bro”缩写,但是由于在美式英语中,这个缩写还有其他的含义,因此最后改为了“br”,这样还能节省字节。

虽然在日常使用中,普通的用户对Brotli压缩传输的内容不会有特别的感受,但只要是能加快网络数据内容的传输又有什么不好呢?

标签: none

添加新评论