zoukankan      html  css  js  c++  java
  • gzip头部格式 任天胜的个人空间 开源中国社区

    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
  • 相关阅读:
    利用ssh的私钥登录Linux server
    PSR-2 代码风格规范
    MySQL的四种事务隔离级别
    table添加横向滚动条
    转换图片大小
    百度地图Label 样式:label.setStyle
    鼠标的几种常用样式
    百度地图API-自定义图标覆盖物
    微信公众号自定义菜单中可加入的表情
    微信公众号项目总结
  • 原文地址:https://www.cnblogs.com/lexus/p/2978175.html
Copyright © 2011-2022 走看看