You need to enable JavaScript to run this app.
导航

智能压缩

最近更新时间2024.01.08 10:48:51

首次发布时间2021.10.14 15:53:37

通过智能压缩配置,veImageX 中创建的服务通过 veImageX-CDN 返回内容时会按照设定规则对资源进行 Gzip 或 Brotli 压缩,可有效减少传输内容大小,节省开销。

背景信息

智能压缩支持 Gzip 和 Brotli 压缩算法。开启智能压缩后,缓存节点会根据请求信息以及启用的压缩算法,智能判断返回的静态文件是否适合压缩以及使用的压缩算法。对于适合压缩的文件,缓存节点将文件先压缩再返回。从而减小文件的大小,提高传输速度,同时降低流量消耗。

  • Gzip 是 Internet 上普遍使用的数据压缩格式,Gzip 对一般纯文本内容可压缩到原大小的 40%。
  • Brotli 是 Google 在 2015年9月推出的一种压缩算法,在压缩率和压缩性能上比 Gzip 有了很大的提升。目前绝大部分浏览器已支持 Brotli。

请求头字段和响应头字段

如果客户端可以接收压缩的数据,在发送的请求中,可以包含Accept-Encoding字段,同时指明支持的压缩算法;在缓存节点响应头中,包含Content-Encoding字段,字段值指明了缓存节点对返回文件使用的压缩算法。

  • 设置 Gzip 压缩
    • 服务端响应携带响应头Content-Encoding: gzip:服务端响应的内容是经过 Gzip 压缩后的资源。
    • 客户端请求携带请求头Accept-Encoding: gzip:客户端希望获取对应资源时进行 Gzip 压缩。
  • 设置 Brotli 压缩
    • 服务端响应携带响应头Content-Encoding: br:服务端响应的内容是经过 Brotli 压缩后的资源。
    • 客户端请求携带请求头Accept-Encoding: br:客户端希望获取对应资源时进行 Brotli 压缩。

注意事项

  • 智能压缩适合静态加速和下载加速两种业务场景。
  • 智能压缩仅对 GET 请求的文件进行压缩。
  • 如果请求为 Range 请求,缓存节点会忽略 Range,返回压缩后的完整文件。
  • 同时开启 Gzip 压缩和 Brotli 压缩,且客户端请求头Accept-Encoding同时携带brgzip时,仅 Brotli 压缩生效。
  • 如果源站开启了压缩功能,且源站响应头中的Content_Encoding字段值不为空且不为identity,表明源站已经对文件进行了压缩。此时,智能压缩功能不再生效。
  • 若源站文件配置了 MD5 校验机制,请勿开启智能压缩功能。
  • 如果源站响应头中的 Vary 字段值没有遵循 RFC 标准,则可能会导致压缩功能不生效。
  • 对于已经对内容做过压缩处理的常见图片文件类型(PNG、JPG、JPEG 等)和视频文件类型(MP4、AVI、WMV 等),再开启智能压缩则没有明显效果,建议您关闭压缩功能。如果您需要进一步减小图片文件的体积,建议您采用集智瘦身进行处理。

前提条件

  • 已开通 veImageX 服务,若未开通请参考服务管理
  • 需减少传输资源用量,减少成本。

操作步骤

说明

若您的智能压缩配置项由于某些原因(如启用了非标配置)被锁定,锁定后界面将展示锁定图标。您可提交工单联系技术支持修改配置。

  1. 登录 veImageX 控制台,单击服务管理。选择相应的图片服务,单击基础配置

  2. 分发配置页签的域名信息中,单击域名的管理按钮。

  3. 高级配置中选择智能压缩,点击操作列的修改,选择压缩方式。

    说明

    如果同时选择了两种压缩方式,则 veImageX 会在资源下发时自行决定使用哪种压缩算法处理。

  4. 单击确定按钮,保存配置。

OpenAPI

您可以通过调用 OpenAPI 更新智能压缩配置,具体请参考 UpdateAdvance

常见问题

智能压缩适用对象有哪些?

目前,开启智能压缩后,在服务端下发以下文件类型时,会自动进行压缩后传输以节省开销:html,shtml,htm,xml,css,js,json,php,ttf(字体文件)。

智能压缩适用的文件类型,有大小限制吗?

没有。

设置压缩方式时,如果同时选择了 Gzip 和 Brotli,具体什么情况下会触发 Gzip 压缩,什么情况下会触发 Brotli 压缩?

veImageX 服务端会自动决定当前下发的资源使用哪种压缩算法。

设置压缩方式后,发现域名状态变成配置中,影响线上吗?

不影响。

设置压缩方式后,会立即生效吗?

CDN 的边缘节点都会是逐步生效的过程,所以设置压缩方式后需要一些时间,让 CDN 的边缘节点逐步生效。在完全生效前,部分节点下发会用上智能压缩,有的节点可能不会。

取消设置后,也需要一些时间,让 CDN 的边缘节点生效。