本文介绍火山引擎全站加速的内容优化功能。全站加速的内容优化是利用压缩算法对客户端请求的资源进行智能压缩。启用智能压缩功能,全站加速会对静态资源进行压缩,缩小了返回给客户端的传输文件大小,从而提升文件传输效率,减少带宽消耗。
背景信息
Gzip 压缩和 Brotli 压缩
- Gzip 压缩:一种经典的压缩算法。 压缩的速度快,在 Internet 上受到普遍支持。纯文本文件经过 Gzip 压缩,一般可以压缩到其原大小的一半左右。
- Brotli 压缩:由 Google 开发,比Gzip 压缩更新的压缩算法。相比于Gzip 压缩,对文件的压缩比更大。Gzip 压缩兼容绝大部分浏览器,Brotli 压缩不兼容较老版本的浏览器。点击这里查看浏览器对 Brotli 的兼容情况。
相关 header
Accept-Encoding
:一个 HTTP 请求头,用于指示客户端支持的压缩算法。例如,当客户端发送请求时,请求头中包含Accept-Encoding: gzip
,表明了客户端能够接收经过 Gzip 压缩的响应内容。Content-Encoding
:一个 HTTP 响应头,用于指示服务器使用的压缩算法。例如,当服务器返回响应时,响应头中包含Content-Encoding: gzip
,表明了服务器对响应内容使用了Gzip 压缩。
智能压缩何时生效
- 只开启 Gzip 压缩 或只开启 Brotli 压缩,客户端的请求头
Accept-Encoding
需要和开启的压缩功能匹配,压缩功能才会生效。
- 仅开启 Brotli 压缩时,若请求头为
Accept-Encoding: gzip
,则 Brotli 压缩不会生效,全站加速将返回请求的原始资源给客户端。 - 仅开启 Gzip 压缩时,若请求头为
Accept-Encoding: br
,则 Gzip 压缩不会生效,全站加速将返回请求的原始资源给客户端。
- 同时开启 Gzip 压缩和 Brotli 压缩,在请求头
Accept-Encoding
匹配压缩功能的基础上,Brotli 压缩的优先级更高。
- 同时开启 Gzip 压缩和 Brotli 压缩,若请求头为
Accept-Encoding: gzip
,则 Gzip 压缩生效,全站加速将返回经过 Gzip 压缩的资源给客户端。 - 同时开启 Gzip 压缩和 Brotli 压缩,若请求头为
Accept-Encoding: br
,则 Brotli 压缩生效,全站加速将返回经过 Brotli 压缩的资源给客户端。 - 同时开启 Gzip 压缩和 Brotli 压缩,若请求头
Accept-Encoding
同时携带了gzip
和br
,则Brotli 压缩优先生效,全站加速将优先返回经过 Brotli 压缩的资源给客户端。
- 若源站开启了压缩功能,且服务端响应中携带了响应头:
Content-Encoding
,则全站加速的压缩功能将不再生效。 - 若客户端发起的是 Range 请求,或者全站加速开启了Range 回源功能,则全站加速的压缩功能将不再生效。
- 常见类型的图片文件(PNG、JPG、JPEG等)和视频文件(MP4、AVI、WMV等)已经做了内容的压缩处理,对于这部分文件,全站加速的压缩功能将不再生效。
- 当源站文件的大小超过1 KB时,您可以使用智能压缩来压缩文件。若源站文件的大小在1 KB以下,全站加速的压缩功能将不再生效。
注意事项
- Gzip压缩、Brotli压缩支持的文件类型有:text/xml、text/plain、text/css、application/javascript、application/x-javascript、application/rss+xml、text/javascript、image/tiff、image/svg+xml、application/json、application/xml。
- 全站加速对静态文件压缩时,会改变MD5值,导致压缩后的文件的和源站文件的MD5值不一致。如果源站配置了 MD5 校验机制,请勿开启压缩功能。
操作步骤
- 登录全站加速控制台。
- 点击左侧导航栏 域名管理 ,进入 域名管理 页面后,点击待配置的加速域名名称。
- 在域名管理页面,点击 性能优化 ,再点击 编辑 。
- 在 性能优化 标签页的内容优化模块,按需开启Gzip 压缩、Brotli 压缩。
- 点击 提交 ,完成内容优化功能的开启。
智能压缩是否生效
您可对比开启 智能压缩 功能前后,请求一个文件时收到的文件类型,来判断智能压缩功能是否生效。例如,如果原始请求收到的文件类型是text
,在您开启 Brotli 压缩后,请求该资源时您收到的是.br
后缀的文件,表明 Brotli 压缩生效。