gzip html文件怎么打开

html-css010

gzip html文件怎么打开,第1张

在浏览网页的时候,浏览器需要把网页上的内容,包括网页HTML,CSS,JS,FLASH和图片等下载到本地,然后把它们显示出来。如果网页上的内容是固定的,下载速度也不是你我能控制的,但下载的大小则是可以控制的,只需要你再传送的过程中先把内容压缩一下即可。

对于一般的HTML,CSS和JS文件,GZIP的压缩比率达50%到80%,节约的流量是非常惊人的。

动态内容压缩

动态内容指动态脚本比如PHP生成的内容,比如WordPress产生的内容均为动态脚本内容。对于动态脚本的压缩方式有两种,一种是ob_gzhandler,一种是zlib.output_compression。前者几乎所有服务器都支持,只需要在WordPress后台options->Reading->WordPress should compress articles (gzip) if browsers ask for them打开GZIP传输即可。而后者是一个PHP模块,效果更佳,因为它是边生成,边压缩,边传输的,效率和速度都更好。但这个是PHP的一个模块,不是所有服务器上的有这个模块。

静态文本压缩

但对于另外一些需要压缩的静态文本,比如html, css, javascript文件等。相应的静态文本压缩的Apache模块有两种,GZIP和DEFLATE,后者更好,不过这都没啥选择,完全看服务器是否提供,个人无法配置,比如使用最多的Bluehost和Dreamhost都不支持。

静态文本调用PHP压缩模块实现GZIP压缩效果

如果服务器不提供对于静态文本的GZIP压缩模块,唯一的出路是通过调用PHP。好处是除了在目录下添加一个文件和修改.htaccess之外,不需要对别的代码作任何修改,所有的js,javascript的压缩都自动生效。

1.页面缓存。页面缓存指之前加载过的页面以文件方式缓存在服务器中,在一段时间内再次加载相同页面时无需重新执行页面逻辑直接加载静态页面。rubyPHP的页面缓存是自动进行的,在config/tpl.php中可配置是否启用缓存以及缓存文件的有效期。当然这仅仅是全局设置,在调用视图时可重新指定是否启用缓存以及缓存有效期。

2.SQL缓存。sql缓存指之前执行过的查询sql语句以及他的结果缓存在内存中,在一段时间内用相同的sql语句执行查询操作时不经过数据库直接返回内存中数据。rubyPHP使用Redis以键值方式缓存sql语句以及他的对应结果。rubyPHP能够在php7上完美运行。(附:关于windows php7 redis 扩展的下载参照我的另一篇博客:http://blog.csdn.net/fanghailiang2016/article/details/51396649)。rubyPHP重写了mysql_query以及mongo_query方法,在执行查询sql查询语句时会优先加载未过期的缓存数据。与页面缓存类似,sql缓存的全局配置路径为config/redis.php,在具体执行sql语句前可重新执行是否使用缓存以及缓存有效期。

3.读写分离。读写分离是建立在主从同步基础上为了减轻服务器压力,将查询语句转移到从服务器上执行的解决方案。rubyPHP重写了mysql_query,mongo_query函数,除了对查询语句进行内存级缓存的优化,同时也将查询语句放到了从服务器上执行。mysql的主从配置文件路径为config/mysql.php。

4.html压缩。html压缩配合页面缓存,前者降低了服务器端压力,后者减少了输出内容所占空间,将html文件中的空格换行等进行压缩,减少了输出文件的大小,在一定程度上保护了html的安全。

rubyPHP在代码结构上模仿CI,在功能上模仿thinkPHP。

rubyPHP的功能包含以下几方面:

1.使用了thinkPHP的M方法操作数据库。对于一些简单的sql语句无需手工写,用熟悉的M()->where()->limit()->find()这样的语法即可完成。曾经面试有人问我为什么thinkPHP的M方法能够进行连续操作,现在终于明白是使用了单利模式。

2.屏蔽了数据库的差异。M方法的另一个优点是用来组件sql语句,对高层屏蔽数据库差异。当然,对于复杂的查询,M方法是做不到的,此时可以使用已被重写过的mysql_query以及mongo_query执行你的sql语句。

3.自定义路由。这一点模仿了CI的route.php,将url同控制器的映射关系写到一个配置文件里。

不足之处:

view文件不支持变量循环输出。目前的解决方案是使用angularjs调用接口在页面输出内容。框架示例程序便是一个使用angularjs的和bootstrap的界面。