码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 【Gzip】详细介绍


    Gzip讲解

    • 1. 前言
    • 2. Gzip压缩算法
    • 3. Gzip文件格式
    • 4. Gzip使用
    • 5. 压缩率与CPU使用

    1. 前言

    Gzip是一种流行的文件压缩和解压工具,也是一种文件格式。它最早由Jean-loup Gailly和Mark Adler开发,用于UNIX系统。由于高效的压缩算法,它被广泛运用于文件的压缩与解压缩、网络数据传输优化等场景。

    2. Gzip压缩算法

    Gzip基于DEFLATE算法,后者结合了LZ77算法和哈夫曼编码。DEFLATE算法在压缩时,会先通过LZ77算法找出文件中的重复字符串并将其替换掉,然后通过哈夫曼编码进一步减少文件大小。

    3. Gzip文件格式

    Gzip文件通常有.gz后缀。一个标准的gzip文件头部包括以下几部分:

    • 一个幻数(magic number):这是两个字节,值为1f 8b,用于标识这是一个gzip文件。
    • 压缩方法(compression method):一个字节,表示了用于文件数据部分压缩的算法,对于gzip来说通常是DEFLATE。
    • 文件标志(flags):一个字节,包括是否有额外字段,原始文件名,注释等信息。
    • 时间戳(timestamp):一个32位的UNIX格式时间戳,标记了文件的最后修改时间。
    • 额外标志(extra flags):取决于压缩方法。
    • 操作系统(operating system):标记创建该gzip文件的操作系统。

    4. Gzip使用

    在Unix/Linux系统中,可以通过命令行使用gzip进行压缩或解压缩。

    压缩文件或目录:

    gzip filename                # 压缩文件,会生成filename.gz文件
    gzip -c filename > filename.gz # 压缩文件并输出到filename.gz
    gzip -r directory             # 递归压缩目录下的所有文件
    
    • 1
    • 2
    • 3

    解压缩文件:

    gzip -d filename.gz           # 解压缩.gz文件
    gunzip filename.gz            # 解压缩.gz文件,同'gzip -d'
    
    • 1
    • 2

    添加压缩级别(1-9,1最快且压缩率最低,9最慢且压缩率最高):

    gzip -9 filename              # 使用最高压缩率压缩
    
    • 1

    Gzip也常见于网络数据传输中,HTTP协议支持gzip压缩,可以显著减小传输的数据大小,提高加载速度。

    5. 压缩率与CPU使用

    使用更高的压缩级别可以得到更小的文件,但同时也需要更多的CPU资源和时间。因此,在使用gzip时要根据具体情况权衡压缩速度和压缩效率。

    Gzip是文件压缩领域的实用工具之一,它简单易用,并且在多种平台和应用中得到广泛支持,是处理文件压缩任务的常见选择。

  • 相关阅读:
    SQL拦截:想要限制每次查询的结果集不能超过10000行,该如何实现?
    优化冗余的if-else,“责任树模式”是个不错的选择
    C++——类和对象(上)
    机器学习-吴恩达老师笔记
    【机器学习】什么是连续状态空间?如何构建一个强化学习的算法以及构建强化学习算法中的一些问题
    分别从中序、后续中组成二叉树(likou106)
    ArrayList集合源码分析
    腾讯联手警方重拳出击,平阳警方斩断特大外挂黑色产业链
    【MySQL】SQL语句优化
    y86.第四章 Prometheus大厂监控体系及实战 -- prometheus存储(十七)
  • 原文地址:https://blog.csdn.net/cz88888888666/article/details/136747559
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号