精华内容
下载资源
问答
  • Gzip数据以1F8B开头,可以以此来划分文件中的Gzip和非Gzip数据。

    Gzip数据以1F8B开头,可以以此来划分文件中的Gzip和非Gzip数据。

    展开全文
  • 整理 |Python大本营在Linux上,gzip无法压缩文件夹,它仅用于压缩单个文件。要压缩文件夹,您应该使用tar + gzip,它是tar -z。注意$tar --help-z, -j, -J, --lzma Compress archive with gzip/bzip2/xz/lzma例如,...

    c387dc6a68c475244931b0822a39e1a5.gif

    整理 | Python大本营 在Linux上,  gzip 无法压缩文件夹,它仅用于压缩单个文件。要压缩文件夹,您应该使用 tar + gzip  ,它是 tar -z  。 注意
    $ tar --help
      -z, -j, -J, --lzma Compress archive with gzip/bzip2/xz/lzma
    例如,
    tar -zcvf outputFileName folderToCompress

    Tar + Gzip文件夹

    将名为“ newrelic”的文件夹以及该文件夹中的所有文件压缩为单个压缩文件newrelic.tar.gz

    $ tar -zcvf newrelic.tar.gz newrelic/
    a newrelic
    a newrelic/.DS_Store
    a newrelic/CHANGELOG
    a newrelic/extension-example.xml
    a newrelic/extension.xsd
    a newrelic/LICENSE
    a newrelic/newrelic-api-sources.jar
    a newrelic/newrelic-api.jar
    a newrelic/newrelic.jar
    a newrelic/newrelic.yml
    a newrelic/nrcerts
    a newrelic/README.txt 
    $ ls -lsa
         0 drwxr-xr-x 13 mkyong staff 442 Jan 24 21:40 newrelic
     11072 -rw-r--r-- 1 mkyong staff 5667938 Jul 23 15:44 newrelic.tar.gz
    列出 newrelic.tar.gz 的内容
    $ tar -tf newrelic.tar.gz
    newrelic/
    newrelic/._.DS_Store
    newrelic/.DS_Store
    newrelic/._CHANGELOG
    newrelic/CHANGELOG
    newrelic/._extension-example.xml
    newrelic/extension-example.xml
    newrelic/._extension.xsd
    newrelic/extension.xsd
    newrelic/._LICENSE
    newrelic/LICENSE
    newrelic/._newrelic-api-sources.jar
    newrelic/newrelic-api-sources.jar
    newrelic/._newrelic-api.jar
    newrelic/newrelic-api.jar
    newrelic/._newrelic.jar
    newrelic/newrelic.jar
    newrelic/._newrelic.yml
    newrelic/newrelic.yml
    newrelic/._nrcerts
    newrelic/nrcerts
    newrelic/._README.txt
    newrelic/README.txt
    参考文献 Linux:gzip命令 Linux:tar命令 翻译自:  https://mkyong.com/linux/linux-how-to-gzip-a-folder/ 推荐阅读-- 每周一课 | Python 示例拆分字符串入到字典里面

    每日一课 | 如何将String转换为int

    每日一课 | Python time.sleep 精准延迟到秒

    每日一课 | Python 如何判断一个字符串是否包含另一个字符串?

    4ad4e22c-382b-eb11-8da9-e4434bdf6706.svg

    球分享

    4bd4e22c-382b-eb11-8da9-e4434bdf6706.svg

    球点赞

    3c11595662f36007e37ee30f50659692.gif

    球在看

    展开全文
  • 标准的gzip.GzipFile类公开了一个类似于访问的随机接口(通过其seek和read方法),但是每次您在未压缩的数据流中寻找新点时, GzipFile实例都必须从文件的开头开始解压缩。 ,直到到达要求的位置。 ...
  • 欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!! ...开启gzip压缩时,服务器在响应之前,对资源进行gzip压缩,并追加Content-Encoding: gzip响应头。浏览器接收响应之后,会检查Cont.

    欢迎大家关注本博,同时欢迎大家评论交流,可以给个赞哦!!!

      ngx_http_gzip_module模块允许使用gzip方式压缩响应内容。这种方式可以有效避免过大的通信内容占用过多的带宽。

      使用SSL/TSL协议时,压缩的响应可能会受到BREACH攻击。

      什么是网站gzip压缩

      正常浏览器通过URI访问服务时,下载的资源都是源文件大小。开启gzip压缩时,服务器在响应之前,对资源进行gzip压缩,并追加Content-Encoding: gzip响应头。浏览器接收响应之后,会检查Content-Encoding响应头,若是gzip,则先对响应进行gzip解压,然后交给浏览器,进行解析及渲染等一系列操作。

      网站gzip压缩的优点

      网站开启gzip以后,会将输出到用户浏览器的数据进行压缩处理,这样会减小通过网络传输的数据量,达到提升网页加载速度、提升用户浏览体验。

      网站开启gzip并非全是优点,gzip压缩算法属于依赖CPU型操作,在服务器端大量的资源进行gzip压缩,会占用服务器CPU和磁盘资源。但对于目前CPU性能来说,其影响微乎其微。

      gzip压缩模块 配置安装

      首次安装Nginx时,切换到Nginx源码目录,执行命令:

    ./configure
    

      运行命令后,可能会出现下面的错误提示,说明系统缺少zlib库:
    在这里插入图片描述

      安装zlib库使用如下命令即可:

    yum install zlib-devel
    

      接下来继续执行make & make install完成Nginx的安装。详细的安装过程可以参照Nginx 多环境安装与配置

      动态增加 gzip压缩模块

    ​  本人Nginx首次安装时,使用./configure --without-http_gzip_module跳过了gzip的配置和安装,所以现在需要动态增加gzip压缩模块。

      首先切换到Nginx源码目录,运行./configure命令。

    cd /securitit/nginx-1.19.3
    ./configure
    

      配置完成后,执行make命令,但切记,不要执行make install命令。

    make
    

      编译完成后,将nginx执行文件复制到/usr/local/nginx/sbin/下(/usr/local/nginx/是Nginx的默认安装目录),复制之前,最好将nginx备份。

    cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx-default
    cp /securitit/nginx-1.19.3/objs/nginx /usr/local/nginx/sbin/nginx
    

      通过上面的步骤,已成功将ngx_http_addition_module模块增加到已安装的Nginx中。

      gzip压缩模块 语法及语义

      gzip

    ​   语法:gzip on | off;

       语义:启用或禁用响应的gzip压缩。

      gzip_buffers

       语法:gzip_buffers number size;

       语义:设置用于压缩响应的number和size的缓冲区。默认情况下,缓冲区大小等于一个内存页。根据平台的不同,它可以是4K或8K。

      gzip_comp_level

       语法:gzip_comp_level level;

       语义:设置响应的压缩级别,level的取值范围是1到9。

      gzip_disable

    ​   语法:gzip_disable regex …;

       语义:禁用对带有"User-Agent"头字段匹配任何指定正则表达式的请求的响应的gzip压缩。

      gzip_http_version

       语法:gzip_http_version 1.0 | 1.1;

    ​   语义:设置压缩响应所需的最低HTTP版本请求。

      gzip_min_length

       语法:gzip_min_length length;

       语义:设置将被压缩的响应的最小长度。长度仅由“Content-Length”响应头字段确定。

      gzip_proxied

       语法:gzip_proxied off | expired | no-cache | no-store | private | no_last_modified | no_etag | auth | any …;

       语义:

       off:禁用所有代理请求的压缩,忽略其他参数。

    ​   expired:响应头包含"Expires"字段,并且该值具有禁用缓存的值,则启用压缩。

       no-cache:响应头包含"Cache-Control:no-cache",则启用压缩。

       no-store:响应头包含"Cache-Control:no-store",则启用压缩。

       private:响应头包含"Cache-Control:private"字段,则启用压缩。

       no_last_modified:响应头不包含"Last-Modified"字段,则启用压缩。

       no_etag:响应头不包含"ETag"字段,则启用压缩。

       auth:请求头包含"Authorization"字段,则启用压缩。

       any:为所有代理请求启用压缩。

      gzip_types

       语法:gzip_types mime-type …;

    ​   语义:除了"text/html"之外,指定其他媒体类型的响应进行gzip压缩。特殊值"*"针对所有媒体类型。

      gzip_vary

       语法:gzip_vary on | off;

    ​   语义:如果启用指令gzip、gzip_static或gunzip,则启用或禁用插入"Vary:Accept-Encoding"响应头字段。

      gzip压缩模块 示例

      为演示效果,在/usr/local/nginx/html/下新建如下目录结构,其中存放了bootstrap的js和css文件:
    在这里插入图片描述

      · 默认配置 不启用gzip

      使用默认nginx.conf,不做任何配置时,通过浏览器(需要注意浏览器缓存)访问http://192.168.20.9/gzip/js/bootstrap.js和http://192.168.20.9/gzip/css/bootstrap.css,结果如下:
    在这里插入图片描述

      从上面的结果可以看出,bootstrap.js和bootstrap.css下载的大小与服务器文件大小一致。

      · 开启gzip压缩配置

      在默认nginx.conf基础上进行修改,开启gzip压缩,完整配置如下:

    worker_processes  1;
    
    events {
        worker_connections  1024;
    }
    
    http {
        include       mime.types;
        default_type  application/octet-stream;
    
        sendfile        on;
    
        keepalive_timeout  65;
    
        server {
            listen       80;
            server_name  localhost;
    
            location / {
                # 开启gzip压缩.
                gzip on;
                # 压缩的响应的最小长度.以"Content-Length"为准进行比较.
                gzip_min_length 1000;
                # 指定gzip压缩级别为5.
                gzip_comp_level 5;
    	    	# 指定支持http协议1.1版本.
                gzip_http_version 1.1;
    	    	# 指定expired no-cache no-store private auth时,开启gzip压缩.
                # gzip_proxied expired no-cache no-store private auth;
    	    	gzip_proxied any;
    	    	# 指定过滤的MIME类型.
                gzip_types text/plain application/javascript text/css;
                
                root   html;
                index  index.html index.htm;
            }
    
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
                root   html;
            }
    
        }
    
    }
    

      再次通过浏览器(需要注意浏览器缓存)访问http://192.168.20.9/gzip/js/bootstrap.js和http://192.168.20.9/gzip/css/bootstrap.css,结果如下:
    在这里插入图片描述
    在这里插入图片描述
      从上面的结果可以看出,响应中多了"Content-Encoding:gzip",bootstrap.js和bootstrap.css的大小都发生了变化。

    开启gzip压缩前开启gzip压缩后
    bootstrap.js69.9KB14.8KB
    bootstrap.css146.6KB21.7KB

      gzip对资源的压缩还是比较可观的,但具体压缩率是多少,也难有统一的裁定,与文件类型、文件内容、文件内容重复率等等方面都有关系。

      总结

      一般应用中,基本不会涉及到gzip压缩相关的内容,但是在资源要求稍高的应用中,其是必不可缺的一部分内容。就像本文开头所说那样,在某些场景下,开启gzip压缩,可以更好的为你和客户进行服务。

      若文中存在错误和不足,欢迎指正!

    本博微信公众号“超哥说码”,欢迎大家订阅,公众号正在完善中,会及时将更优质的博文推送于您!
    在这里插入图片描述

    展开全文
  • Php 开启gzip 压缩,增强页面访问速度    GZIP压缩是一个经常被用到的WEB性能...接下来我们就介绍一下什么是GZIP压缩,以及GZIP压缩是个什么概念。    GZIP网页压缩,是一种WEB服务器与浏览器之间共同遵守


         GZIP压缩是一个经常被用到的WEB性能优化的技巧,它主要是对页面代码,CSS,Javascript,PHP等文件进行压缩,而且在压缩的前后,文件的大小会有明显的改变,从而达到网站访问加速的目的。


    接下来我们就介绍一下什么是GZIP压缩,以及GZIP压缩是个什么概念。

     

      GZIP网页压缩,是一种WEB服务器与浏览器之间共同遵守的协议,也就是说WEB服务器和浏览器都必须支持该技术才能实现GZIP压缩,而当下主流的浏览器都是支持GZIP压缩,包括IE6、IE7、IE8、IE9、FireFox、谷歌浏览器、Opera等,而常见的WEB服务器通常有Apache和IIS两种。

      GZIP最早由Jean-loup Gailly和Mark Adler创建,用于UNIX系统的文件压缩。我们在Linux中经常会用到后缀为.gz的文件,它们就是GZIP格式的。目前,GZIP已经成为Internet上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

     

    下面介绍一下GZIP压缩时,WEB服务器与浏览器之间的协商过程如下:

    1、首先浏览器请求某个URL地址,并在请求的开始部分头(head) 设置属性accept-encoding值为gzip、deflate,表明浏览器支持gzip和deflate这两种压缩方式(事实上deflate也是使用GZIP压缩协议,在之后的内容之我们会介绍二者之间的区别);

    2、WEB服务器接收到请求后判断浏览器是否支持GZIP压缩,如果支持就传送压缩后的响应内容,否则传送不经过压缩的内容;

    3、浏览器获取响应内容后,判断内容是否被压缩,如果是压缩文件则解压缩,然后显示响应页面的内容。

     

           HTTP协议上的GZIP编码是一种用来改进WEB应用程序性能的技术。大流量的WEB站点常常使用GZIP压缩技术来让用户感受更快的速度。这一般是指 WWW服务器中安装的一个功能,当有人来访问这个服务器的网站时,服务器的这个功能就将网页内容压缩后传输到来访的电脑浏览器中显示出来。一般对纯文 内容可压缩到原大小的40%,这样以来文件的体积就减小了很多,传输速度也就快了。效果就是你点击网址后会很快的显示出来。当然这也会增加服务器的负载,一般的服务器中都会安装有这个功能模块。

    GZIP压缩的比率往往在3倍到10倍,也就是本来90k大小的页面,采用压缩后实际传输的内容大小只有28至30K大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。

          在实际应用中,我们并不需要对网站所有文件都进行压缩,只需要对静态文件进行压缩就可以了,比如Javascript、CSS及和HTML文件。对其他文件进行压缩并不会给WEB性能带来太多的改观,并且对网站开启GZIP功能是需要牺牲部分服务器性能的。而且对于FLASH文件来说开启GZIP压缩之后还会影响其效果。

     

    SAE上开启gzip 设置方法:

    通常对网站内容进行Gzip压缩,会提高网站打开速度。浏览器会自动解压缩的,所以这种压缩 对网站内容本身没有多大影响。

    SAE设置方法有两种:在管理面板中config设置;在代码中设置好上传。两种方法几乎是一样的。这里主要讲第一种:进入项目管理页面,在AppConfig中,点击页面压缩,然后在弹出的对话框中,点击高级语法,然后复制下面代码进去保存就 可以了。( 第二种方式是在config.yaml文件中输 入以下内容,然后用SVN上传就可以了)。

    - compress: if ( out_header["Content-type"] ~ "text/css" ) compress
    - compress: if ( out_header["Content-type"] ~ "text/javascript" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/octet-stream" ) compress
    - compress: if ( out_header["Content-type"] ~ "text/html" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/zip" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/x-zip-compressed" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/pdf" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/msword" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/vnd.ms-excel" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/vnd.ms-powerpoint" ) compress
    - compress: if ( out_header["Content-type"] ~ "image/jpeg" ) compress
    - compress: if ( out_header["Content-type"] ~ "image/png" ) compress
    - compress: if ( out_header["Content-type"] ~ "image/pjpeg" ) compress
    - compress: if ( out_header["Content-type"] ~ "image/gif" ) compress
    - compress: if ( out_header["Content-type"] ~ "application/x-shockwave-flash" ) compress
    - compress: if ( out_header["Content-type"] ~ "image/bmp" ) compress

     

    查询设置是否成功,在站长工具的网页GZIP压缩检测 http://tool.chinaz.com/Gzips/中查询。

     

     

    php设置gzip压缩:

    分享两种压缩页面输出数据以提高网页访问速度的方法,一种是通过使用php zlib扩展实现页面gzip压缩输出(使用php的内置函数ob_gzhandler进行gzip压缩输出),另外一种方法是是通过修改php.ini配置文件开启php gzip以实现压缩页面信息压缩传输,现在分别详细分享一下这两种方法分别是如何实现的!

    (1)通过php的内置函数ob_gzhandler进行gzip压缩输出

    在页面头部添加如下代码: 

    if(extension_loaded('zlib') && strstr($_SERVER['HTTP_ACCEPT_ENCODING'],'gzip')){

        ob_start('ob_gzhandler');

    }else{

        exit('php zlib使用失败,请确认是否已加载zlib扩展');

    }

    在页面尾部添加如下代码:

    if(extension_loaded('zlib')){ob_end_flush();}


    (2)通过修改php.ini配置文件实现开启或关闭php gzip以实现压缩页面信息压缩传输

     
    一、找到并打开php.ini配置文件,找到zlib.output_compression = Off,将

    zlib.output_compression = Off   

    ;zlib.output_compression_level = -1

    修改为:

    zlib.output_compression = On   

    zlib.output_compression_level = 6

     

    php gzip配置知识点:

    1、默认php是不开启zlib整站压缩输出的,而是通过对需要压缩输出的页面使用ob_gzhandler函数实现,两者只能二选一,否则会报错。
     
    2、zlib.output_compression默认值为Off,你可以将其设置为On,或者output buffer size(默认为4k)
     
    3、zlib.output_compression_level代表压缩比,默认推荐设置压缩比值为6,可选范围为1-9,-1代表关闭php zlib(gzip)压缩
     
    二、保存php.ini配置文件,并重启apache服务器
     
    三、打开apache 配置文件httpd.conf,配置装载deflate_module。这一步是最关键的开启php gzip压缩输出配置步骤,方法如下,找到

    #LoadModule deflate_module modules/mod_deflate.so

    这一段并去除开头的#号,然后重启apache即可。

    注意:这种办法是相对于php版本大于4.3来说的,php4.3版本以前的需要另外单独安装zlib的。

     

    参考网站:

    http://jacky.aiwaly.com/wp/web-gzip-jiashao.html

    http://blog.wanghaida.com/%E6%96%B0%E6%B5%AAsae%E5%BC%80%E5%90%AFgzip%E5%8E%8B%E7%BC%A9%E8%AE%BE%E7%BD%AE%E6%96%B9%E6%B3%95/

    http://www.oobai.com/2014/php_news_0522/616.html

     

     

     

     

     

     

    展开全文
  • nginx gzip压缩

    2018-05-18 17:16:00
    gzip压缩作用:将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并...location ~ .*\.(jpg|gif|png|bmp)$ //~区分大小写, 匹配任意字符开头以.jpg或.bmp结尾,注意这里的jgp等类型需要使用gzip_...
  • php简单开启gzip压缩方法

    千次阅读 2013-07-19 11:34:12
    网页开启gzip压缩以后,其体积可以减小20%~90%,可以节省下大量的带宽,从而减少页面响应时间,提高用户体验。 php配置改法: zlib.output_compression = On ;开启gzip功能 zlib.output_compression_level = 4 ;...
  • gzip压缩算法

    千次阅读 2019-01-23 13:40:29
    gzip压缩算法
  • gzip的编码

    千次阅读 2016-12-04 14:51:10
    在使用base64远程传图片时,多次访问...想到可以用gzip来压缩, 从网上拿了一段代码: public static String compress(String str) throws IOException { if (str == null || str.length() == 0) { return str; }
  • 网页开启gzip压缩以后,其体积可以减小20%~90%,可以节省下大量的带宽,从而减少...建议在页面开头写上,可以写到头部公共文件 复制代码 代码如下: if( !headers_sent() && // 如果页面头部信息还没有输出 extensio
  • Gzip Zlib PNG 压缩算法 Gzip源码详解 - jiurl的专栏 - CSDNBlog 导读: Gzip Zlib PNG 压缩算法 Gzip源码详解 作者: JIURL 主页: http://jiurl.yeah.net 日期: 2004-3-1(测试版)  gzip,zlib,以及图形格式...
  • gzip文件格式通过将头部中定长部分的某些比特位置位来标识头部是否带有扩展部分,我们一一来看。   以下各字段的中文含义,我在网上搜了好久也没找到理想的,这里我将RFC1952中的英文释义粗略的翻译一下,不足之处...
  • tar+gzip

    2016-06-19 17:16:00
    tar打gzip包: tar -czvf sourceDir.tar.gz sourceDir tar查看压缩包内容: tar -tvf sourceDir.tar.gz tar解压缩包crontab.tar.gz内容到crontab: tar -xvf crontab.tar.gz crontab .tar: ...
  • gzip压缩详解

    2015-08-05 18:12:08
    gzip,zlib,以及图形格式png,使用的是同一个压缩算法deflate。我们通过对gzip源码的分析来对deflate压缩算法做一个详细的说明。我阅读的gzip版本为 gzip-1.2.4。我 们对算法做三种程度的说明。第一种程度,对gzip所...
  • gzip_static

    2017-12-01 10:52:00
    配置要点 以/download开头的请求,会被路由到/opt/app/code目录下,比如请求: 'http://192.168.1.108/download/c.png',会去...gzip_static开启后,nginx会去找和目标资源(c.png)同目录下的压缩过的资源(c.png.g...
  • gzip压缩输出

    2013-05-25 10:55:58
    一、gzip介绍  gzip是GNU zip的缩写,它是一个GNU自由软件的文件压缩程序,也经常用来表示gzip这种文件格式。软件的作者是Jean-loup Gailly和Mark Adler。1992年10月31日第一次公开发布,版本号是0.1,目前的...
  • gzip在web中的应用

    2019-03-07 16:19:47
    使用webpack打包前端文件时,在一些资料中提到可以使用gzip压缩技术达到优化打包文件大小的效果。 简单配置后,发现压缩效果确实很好,可对前端文件缩小至少一半左右! 惊讶之余同时也有很多疑问,这篇文章主要是想...
  • gzip压缩压缩方式压缩率Compression is a simple way to speed up the site. PHP’s gzip compression is excellent. And using it is very convenient: 压缩是加快站点速度的简单方法。 PHP的gzip压缩非常出色。 ...
  • gzip inflateInit2

    万次阅读 2013-10-22 17:58:49
    参考网上例子和文字,自己使用inflateInit2解压gzip文件。 ttp报文中gzip解码方法与遇到的问题 前几天写了个脚本去开心网偷菜,由于数据是zip压缩的,所以试着解压。 (或者在模拟发包HTTP头去掉"Accept-Encoding:...
  • http: 支持 Content-Encoding: gzip

    千次阅读 2015-08-24 19:42:21
    curl -v --compressed ... 请求: Accept-Encoding: gzip, deflate 响应: Content-Encoding: gzip ...gzip -9c xx.txt > xx.gz ...开头是标记0x1f,0x8b,然后0x08表示使用deflate,前10个字节
  • Linux基础命令---gzip

    2018-12-17 08:09:20
    gzip  gzip通过Lempel-ziv算法来压缩文件,压缩的时候保留每个文件的所有者、权限、修改时间。对于符号链接,gzip将会忽略它。  如果压缩的文件名对其文件系统来说太长,则gzip将截断它。Gzip试图只截断文件名中...
  • 摘要: 一,前言 GZIP是最常见的压缩文件格式,目前DataX是支持对该压缩文件直接的读取,但每个GZIP仅仅只能启动一个线程来读取,当GZIP比较大,或者说针对GZIP中的数据有着较复杂的操作的情况下,执行效率往往比较...
  • zlib2gzip

    2009-11-09 18:35:00
    gzip格式rfc 1952 http://www.ietf.org/rfc/rfc1952.txtdeflate格式rfc 1951 http://www.ietf.org/rfc/rfc1951.txtzlib开发库 http://www.zlib.net/manual.html寻找gzip 获取一个网页数据返回的编码类型是gzip,我该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 40,896
精华内容 16,358
关键字:

gzip开头