RFC 8878 - Zstandard压缩和'application/zstd'媒体类型
发布日期: 2021年2月
状态: Informational (信息性)
作者: Y. Collet (Facebook), M. Kucherawy (Facebook, Ed.)
废弃: RFC 8478
摘要 (Abstract)
Zstandard, 或 "zstd" (发音为 "zee standard"), 是一种无损数据压缩机制 (Lossless Data Compression Mechanism)。本文档描述了该机制, 并注册了在通过 MIME 传输 zstd 压缩内容时使用的媒体类型 (Media Type)、内容编码 (Content Encoding) 和结构化语法后缀 (Structured Syntax Suffix)。
尽管 Zstandard 名称中使用了 "standard" (标准) 一词, 但读者应注意, 本文档不是互联网标准跟踪规范; 它仅出于信息性目的发布。
本文档替代并废弃 RFC 8478。
目录 (Contents)
核心章节
- 1. Introduction (简介)
- 2. Definitions (定义)
- 3. Compression Algorithm (压缩算法)
- 3.1 Frames (帧)
- 3.1.1 Zstandard Frames
- 3.1.2 Skippable Frames
- 3.1 Frames (帧)
- 4. Entropy Encoding (熵编码) 🌟
- 4.1 FSE (有限状态熵)
- 4.1.1 FSE Table Description
- 4.2 Huffman Coding (哈夫曼编码)
- 4.2.1 Huffman Tree Description
- 4.2.2 Huffman-Coded Streams
- 4.1 FSE (有限状态熵)
标准化章节
- 5. Dictionary Format (字典格式)
- 6. Use of Dictionaries (字典的使用)
- 7. IANA Considerations (IANA考虑事项)
- 7.1 The 'application/zstd' Media Type
- 7.2 Content Encoding
- 7.3 Structured Syntax Suffix
- 7.4 Dictionaries
- 8. Security Considerations (安全考虑)
附录 (Appendices)
- Appendix A. Decoding Tables for Predefined Codes (预定义代码解码表)
- A.1 Literals Length Code Table (字面量长度代码表)
- A.2 Match Length Code Table (匹配长度代码表)
- A.3 Offset Code Table (偏移量代码表)
- Appendix B. Changes since RFC 8478 (自RFC 8478以来的变更)
- Acknowledgments (致谢)
- Authors' Addresses (作者地址)
参考文献
- 9. References (参考文献)
- 9.1 Normative References (规范性参考文献)
- 9.2 Informative References (信息性参考文献)
技术亮点
🔬 核心算法
FSE (有限状态熵)
- 基于ANS的熵编码器
- 状态机驱动的编码/解码
- 优化的概率分布表
Huffman 编码
- 前缀码构造
- 权重到码字的转换
- 反向位流读取
📊 性能特性
压缩级别范围: -5 到 22
默认级别: 3 (平衡速度和压缩比)
压缩速度: 100-500 MB/s (级别1-3)
解压速度: 1000-1500 MB/s
最大窗口大小: 128 MB
🎯 应用场景
- Web内容压缩: HTTP响应、静态资源
- 文件系统: Btrfs、ZFS透明压缩
- 数据库: Kafka、MySQL、Clickhouse
- 网络传输: HTTP/2、gRPC、WebSocket
相关资源
- 官方原文: RFC 8878
- 官方页面: RFC 8878 DataTracker
- Zstandard官网:
http://www.zstd.net - GitHub仓库:
https://github.com/facebook/zstd - 勘误表: RFC Editor Errata
文档状态
翻译版本: 简体中文
翻译状态: 🔄 进行中
最后更新: 2024-12-25
技术审核: 待完成