gzip头部格式 - 任天胜的个人空间 - 开源中国社区
2013-03-24 10:12
316 查看
gzip头部格式 - 任天胜的个人空间 - 开源中国社区
gzip头部格式
6人收藏此文章, 我要收藏 发表于2个月前(2013-01-19 08:39) , 已有167次阅读 ,共0个评论
注意两个加好表示一个字节(8位)
gzip头的格式:
+---+---+---+---+---+---+---+---+---+---+
|ID1|ID2|CM |FLG| MTIME |XFL|OS | (more-->)
+---+---+---+---+---+---+---+---+---+---+
(if FLG.FEXTRA set)
+---+---+=================================+
| XLEN |...XLEN bytes of "extra field"...| (more-->)
+---+---+=================================+
(if FLG.FNAME set)
+=========================================+
|...original file name, zero-terminated...| (more-->)
+=========================================+
(if FLG.FCOMMENT set)
+===================================+
|...file comment, zero-terminated...| (more-->)
+===================================+
(if FLG.FHCRC set)
+---+---+
| CRC16 |
+---+---+
+=======================+
|...compressed blocks...| (more-->)
+=======================+
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| CRC32 | ISIZE |
+---+---+---+---+---+---+---+---+
ID1与ID2:各1字节。固定值,ID1 = 31 ( '\037' ,0x1F),ID2 = 139( '\213' ,0x8B),指示GZIP格式。
CM:1字节。压缩方法。
0: store (copied)
1: compress
2: pack
3: lzh
4-7: 保留
8: deflate
FLG:1字节。标志。
bit 0 FTEXT - 指示文本数据
bit 1 FHCRC - 指示存在CRC16头校验字段
bit 2 FEXTRA - 指示存在可选项字段
bit 3 FNAME - 指示存在原文件名字段
bit 4 FCOMMENT - 指示存在注释字段
bit 5-7 保留
MTIME:4字节。更改时间。UINX格式。
XFL:1字节。附加的标志。
OS:1字节。操作系统
ID OS
0x00 FAT filesystem (MS-DOS, OS/2, NT/Win32)
0x01 Amiga
0x02 VMS (or OpenVMS)
0x03 Unix
0x04 VM/CMS
0x05 Atari TOS
0x06 HPFS filesystem (OS/2, NT)
0x07 Macintosh
0x08 Z-System
0x09 CP/M
0x0a TOPS-20
0x0b NTFS filesystem (NT)
0x0c QDOS
0x0d Acorn RISCOS
0xff unknown
额外的头字段:(可选的)
若 FLG 的 bit 2 FEXTRA = 的值为1时需要添加一下格式内容
+---+---+-------+----------------------------+
|SI1 | SI2 | XLEN | 长度为XLEN字节的可选 |
+---+---+-------+----------------------------+
若 FLG 的 bit 3 FNAME 的值为1时需要添加一下格式内容
+----------------------------------------------+
| 原文件名(以NULL结尾) |
+----------------------------------------------+
(若 FLG 的 bit 4 FCOMMENT 的值为1时需要添加一下格式内容
+-------------------------------------------------+
| 注释文字(只能使用iso-8859-1字符,以NULL结尾) |
+-------------------------------------------------+
若 FLG 的 bit 1 FHCRC 的值为1时需要添加一下格式内容
+-------+
| CRC16 |
+-------+
2. 数据部分
通常采用deflate格式的数据
3. 尾部分
CRC32:4字节。原始(未压缩)数据的32位校验和。
ISIZE:4字节。原始(未压缩)数据的长度的低32位。
blog: http://blog.csdn.net/rentiansheng/article/details/8509558
6人收藏此文章, 我要收藏 发表于2个月前(2013-01-19 08:39) , 已有167次阅读 ,共0个评论
注意两个加好表示一个字节(8位)
gzip头的格式:
+---+---+---+---+---+---+---+---+---+---+
|ID1|ID2|CM |FLG| MTIME |XFL|OS | (more-->)
+---+---+---+---+---+---+---+---+---+---+
(if FLG.FEXTRA set)
+---+---+=================================+
| XLEN |...XLEN bytes of "extra field"...| (more-->)
+---+---+=================================+
(if FLG.FNAME set)
+=========================================+
|...original file name, zero-terminated...| (more-->)
+=========================================+
(if FLG.FCOMMENT set)
+===================================+
|...file comment, zero-terminated...| (more-->)
+===================================+
(if FLG.FHCRC set)
+---+---+
| CRC16 |
+---+---+
+=======================+
|...compressed blocks...| (more-->)
+=======================+
0 1 2 3 4 5 6 7
+---+---+---+---+---+---+---+---+
| CRC32 | ISIZE |
+---+---+---+---+---+---+---+---+
ID1与ID2:各1字节。固定值,ID1 = 31 ( '\037' ,0x1F),ID2 = 139( '\213' ,0x8B),指示GZIP格式。
CM:1字节。压缩方法。
0: store (copied)
1: compress
2: pack
3: lzh
4-7: 保留
8: deflate
FLG:1字节。标志。
bit 0 FTEXT - 指示文本数据
bit 1 FHCRC - 指示存在CRC16头校验字段
bit 2 FEXTRA - 指示存在可选项字段
bit 3 FNAME - 指示存在原文件名字段
bit 4 FCOMMENT - 指示存在注释字段
bit 5-7 保留
MTIME:4字节。更改时间。UINX格式。
XFL:1字节。附加的标志。
OS:1字节。操作系统
ID OS
0x00 FAT filesystem (MS-DOS, OS/2, NT/Win32)
0x01 Amiga
0x02 VMS (or OpenVMS)
0x03 Unix
0x04 VM/CMS
0x05 Atari TOS
0x06 HPFS filesystem (OS/2, NT)
0x07 Macintosh
0x08 Z-System
0x09 CP/M
0x0a TOPS-20
0x0b NTFS filesystem (NT)
0x0c QDOS
0x0d Acorn RISCOS
0xff unknown
额外的头字段:(可选的)
若 FLG 的 bit 2 FEXTRA = 的值为1时需要添加一下格式内容
+---+---+-------+----------------------------+
|SI1 | SI2 | XLEN | 长度为XLEN字节的可选 |
+---+---+-------+----------------------------+
若 FLG 的 bit 3 FNAME 的值为1时需要添加一下格式内容
+----------------------------------------------+
| 原文件名(以NULL结尾) |
+----------------------------------------------+
(若 FLG 的 bit 4 FCOMMENT 的值为1时需要添加一下格式内容
+-------------------------------------------------+
| 注释文字(只能使用iso-8859-1字符,以NULL结尾) |
+-------------------------------------------------+
若 FLG 的 bit 1 FHCRC 的值为1时需要添加一下格式内容
+-------+
| CRC16 |
+-------+
2. 数据部分
通常采用deflate格式的数据
3. 尾部分
CRC32:4字节。原始(未压缩)数据的32位校验和。
ISIZE:4字节。原始(未压缩)数据的长度的低32位。
blog: http://blog.csdn.net/rentiansheng/article/details/8509558
相关文章推荐
- Lua包管理工具Luarocks详解 - 15134559390的个人空间 - 开源中国社区
- 使用 vim + ctags + cscope + taglist 阅读源码 - bo博的个人空间 - 开源中国社区
- xPool - 基于mysqlclient的mysql的c++连接池 - xnhcx的个人空间 - 开源中国社区
- Nodejs负载均衡:haproxy,slb以及node-slb - i5ting的个人空间 - 开源中国社区
- tcp和udp多线程的epoll服务器+客户端源代码 - brucema的个人空间 - 开源中国社区
- OFBiz + Opentaps 目录管理 四. 产品(一)定义产品 - Jason的个人空间 - 开源中国社区
- Python执行系统命令的方法 os.system(),os.popen(),commands - renwofei423的个人空间 - 开源中国社区
- Redis Sentinel(哨兵):集群解决方案 - 諨云的个人页面 - 开源中国社区
- Oschat IM 开源即时通讯项目介绍 - FengJ的个人页面 - 开源中国社区
- CR-尼尔森相关人士曾表示,Facebook是美国校园社团文化的在线延续,但在中国并不具备这样的环境。社区用户群的年轻化以及浓郁的乡情或地域情节使得国内社区网站更趋向于同城交友平台,而并不是个人社交圈的扩展。
- 无需图形界面环境下的浏览器项目一览表 - 开源中国社区
- Rudiments 0.42 发布,C++ 常用工具包 - 开源中国社区
- Jeeplus智能快速开发平台首页、文档和下载 - spring MVC mybatis ssm 框架 - 开源中国社区
- PyRedisAdmin v1.0 Beta 发布,Redis 在线管理工具 - 开源中国社区
- 鄙视Linux开源社区不接受163等中国邮件
- 2014 年最热门的国人开发开源软件 TOP 100 - 开源中国社区
- Uncode-Schedule首页、文档和下载 - 分布式任务调度组件 - 开源中国社区
- 如何参与和帮助「Linux 中国」开源社区的发展
- JavaCC首页、文档和下载 - 语法分析生成器 - 开源中国社区
- Python-memcached的基本使用 - Flynewton成长点滴 - 开源中国社区