内容简介:网页在服务器端经过了gzip或者其他格式的压缩后的输出明显减少了content-length字节,当访问过百万时,这些减少的字节就会变为客观的流量给节约下来;从而减轻服务器的压力以及网页的访问速度;客户端在向服务端发送http请求时,在请求头中有一个Accept-Encoding的头信息,该头信息告知服务器端本客服端能接收什么样的压缩文件,如果服务器端配置了压缩的需求,就会返回相应的压缩文件,然后浏览器再解码呈现出来;我们在做采集时,需要采集的是未压缩的文件,所以在http请求头上不要包含Accept-En
gzip压缩
概述
网页在服务器端经过了gzip或者其他格式的压缩后的输出明显减少了content-length字节,当访问过百万时,这些减少的字节就会变为客观的流量给节约下来;从而减轻服务器的压力以及网页的访问速度;
原理
客户端在向服务端发送http请求时,在请求头中有一个Accept-Encoding的头信息,该头信息告知服务器端本客服端能接收什么样的压缩文件,如果服务器端配置了压缩的需求,就会返回相应的压缩文件,然后浏览器再解码呈现出来;我们在做采集时,需要采集的是未压缩的文件,所以在http请求头上不要包含Accept-Encoding的键;
通过这个原理在 php 给app写接口时,可做一些安全方面的处理,具体如何实现,期待和有经验的app开发人员一起研究.
Nginx的压缩
在http段添加如下配置
gzip on|off; #是否开启gzip gzip_buffers 32 4K| 16 8K #缓冲(压缩在内存中缓冲几块? 每块多大?) gzip_comp_level [1-9] #推荐6 压缩级别(级别越高,压的越小,越浪费CPU计算资源) gzip_disable #正则匹配UA 什么样的Uri不进行gzip gzip_min_length 200 # 开始压缩的最小长度(再小就不要压缩了,意义不在) gzip_http_version 1.0|1.1 # 开始压缩的http协议版本(可以不设置,目前几乎全是1.1协议) gzip_proxied # 设置请求者代理服务器,该如何缓存内容 gzip_types text/plain application/xml # 对哪些类型的文件用压缩 如txt,xml,html ,css gzip_vary on|off # 是否传输gzip压缩标志
Example
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.1; gzip_comp_level 2; gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss; gzip_vary on; gzip_proxied expired no-cache no-store private auth; gzip_disable "MSIE [1-6]\.";
注意:
- 图片/mp3这样的二进制文件,不必压缩,因为压缩率比较小, 比如100->80字节,而且压缩也是耗费CPU资源的.
- 比较小的文件不必压缩,意义不存在.
expire浏览器缓存设置
概述
这里的缓存控制主要是针对图片,css,js等 变化周期较短的静态文件 ;以图片为例,当我们第一次访问这张图片时,服务器返回的是200,同时在响应头返回了两个键,Etag:即该文件的'指纹'(唯一标识)以及Last-Modified:'文件的修改时间';此时浏览器,以及其他的缓存服务器就会把这张图片给缓存起来;再次请求这张图片时,请求头增加了两个键值,If-Modified-Since:上次发生改变的时间;If-None-Match:上次文件本身的Etag值,服务器根据这两个键值判断其Etag和Last-Modified,如果都没发生改变就不返回这张图片,只返回一个304的状态码,服务器接收到这个304的状态码就会自己去从缓存里面找这个被缓存的图片;
这样就减少了服务器的带宽压力以及提升了网站访问速度;
配置
在location段以及if段可以设置
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 12h; }
格式
expires 30s; expires 30m; expires 2h; expires 30d;
注意:服务器的日期要准确,如果服务器的日期落后于实际日期,可能导致缓存失效
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- golang压缩和解压缩zip文件
- bitcoin:压缩公钥与未压缩公钥
- 一句话轻松实现压缩图片和文件压缩
- 基于Node.js实现压缩和解压缩的方法
- 一种 JNI 方法实现图片压缩,压缩率极高
- Java - 调用 echarts 提供的地图压缩方法压缩地图
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
数据结构与算法(Java语言版)
(美) Adam Drozdek著;周翔 / 机械工业出版社 / 2003-07-01 / 49.50元
数据结构与算法:Java语言版,ISBN:9787111119029,作者:(美)Adam Drozdek著;周翔[等]译;周翔译一起来看看 《数据结构与算法(Java语言版)》 这本书的介绍吧!