现在的位置:首页>网站SEO>正文

我为什么不使用HTML代码压缩插件?

2016年10月01日 ⁄ 共 3152字 评论 1 条

部落一直都是使用的wordpress这个建站程序,像GZIP压缩这个功能,无论是服务器,还是wordpress插件,部落都是开启了的,很明显,经过GZIP压缩,能够有效地减小文件的大小,从而提高网站的加载速度.而HTML压缩,部落个人觉得本身对网站性能提升意义并不大,所以一直没有使有这一类的插件,但有很多网站,使用了这一类的插件.

HTML代码压缩到底压缩了什么

HTML的全称是超文本标记语言,HTML网页本身是一种文本文件,通过在文件中添加标记符,可以告诉浏览器如何显示其中的内容,包括文字大小,颜色,图片显示等等。这就意味着在文本文件中的一些特定意义的字符可以在浏览器显示的时候就不一样了,HTML代码压缩就是压缩这些在文本文件中有意义,但是在HTML中不显示的字符,包括空格,制表符,换行符等,还有一些其他意义的字符,如HTML注释也可以被压缩.

有了这个基础,我们挑选网络上的100张未经过HTML压缩的页面进行统计.

  1. #!/usr/bin/env python   
  2. # -*- coding:utf-8 -*-   
  3. import urllib2,re   
  4. import matplotlib.pyplot as plt   
  5. htmlsp = re.compile(r"[\r\n\t]")   
  6. def htmlcompress(html):   
  7.     html =  htmlsp.sub("",html)   
  8.     return html.replace("  "," ")   
  9. urls = open("urls.txt","rb")   
  10. comdation = list()   
  11. while True:   
  12.     url = urls.readline()   
  13.     if not url:   
  14.         break  
  15.     if not len(url):   
  16.         continue  
  17.     try:   
  18.         content = urllib2.urlopen(url).read()   
  19.     except:   
  20.         continue  
  21.     unlen = len(content)   
  22.     comlen = len(htmlcompress(content))   
  23.     comra = 100.0*(unlen*1.0-comlen*1.0)/unlen   
  24.     obj = "uncompress:%d bit, compress:%d bit, compressdatio: %f%%"%(unlen,comlen,comra)   
  25.     print obj   
  26.     comdation.append(comra)   
  27. plt.ylabel("compressdatio")   
  28. plt.plot(comdation)   
  29. plt.show()  

其压缩率分布图如下:

我为什么不使用HTML代码压缩插件?

从图中可以看到,压缩率最高的可以达到20%还多, 那是不是就意味着HTML有必要呢?实际上我们忘了,HTML属于文本数据,如果服务器上采用好的压缩算法,它的压缩律是非常高的,现在世界上有接近70%的服务器采用Gzip压缩算法1,如果我本身的HTML传送采用Gzip压缩,和HTML压缩有什么联系呢,来看一下下面的程序分析:

  1. #!/usr/bin/env python   
  2. # -*- coding:utf-8 -*-   
  3. import urllib2,re   
  4. import matplotlib.pyplot as plt   
  5. import gzip,StringIO   
  6. htmlsp = re.compile(r"[\r\n\t]")   
  7. def htmlcompress(html):   
  8.     html =  htmlsp.sub("",html)   
  9.     return html.replace("  ","")   
  10. def gzipcompress(html):   
  11.     buf = StringIO.StringIO()   
  12.     f = gzip.GzipFile(mode="wb",fileobj = buf)   
  13.     f.write(html)   
  14.     f.close()   
  15.     return buf.getvalue()   
  16. urls = open("urls.txt","rb")   
  17. unlenlist = list()   
  18. comlenlist = list()   
  19. gzipcomlenlist = list()   
  20. gzipcomhtmllenlist = list()   
  21. while True:   
  22.     url = urls.readline()   
  23.     if not url:   
  24.         break  
  25.     if not len(url):   
  26.         continue  
  27.     try:   
  28.         content = urllib2.urlopen(url).read()   
  29.     except:   
  30.         continue  
  31.     unlen = len(content)   
  32.     comlen = len(htmlcompress(content))   
  33.     gzipcomlen = len(gzipcompress(content))   
  34.     gzipcomhtmllen = len(gzipcompress(htmlcompress(content)))   
  35.     unlenlist.append(unlen)   
  36.     comlenlist.append(comlen)   
  37.     gzipcomlenlist.append(gzipcomlen)   
  38.     gzipcomhtmllenlist.append(gzipcomhtmllen)   
  39. plt.ylabel("HTML Length(bit)")   
  40. plt.xlabel("WebSite")   
  41. plt.plot(unlenlist,"b")   
  42. plt.plot(comlenlist,"r")   
  43. plt.plot(gzipcomlenlist,"y")   
  44. plt.plot(gzipcomhtmllenlist,"k")   
  45. plt.show()  

分布图如下:

我为什么不使用HTML代码压缩插件?

图中蓝线表示原始的网页大小,红线表示HTML压缩的大小,黄线表示Gzip压缩原始文件的大小,黑线表示Gzip压缩HTML压缩文件的大小,可以得出两个结论:

1.只有在原始网页文件比较大时候,HTML压缩才会节省一些空间

2.只要服务器开启Gzip压缩,网页HTML是否压缩对整个网页传送体积影响不大

所以我们可以得出结论,HTML压缩本身对网站性能提升意义并不大,最多只能混淆一下让其他人难以查看,但是越来越多的前端工具已经让这种做法变得越来越没有意义,反而影响自己的开发,所以,放弃HTML压缩吧.

当然,这个结论也不是在所有情况下都成立,当你的访客足够多的时候,节省一个字节的大小可能都会导致大量的成本节省,以google为例,他的互联网占到整个互联网流量的40%,而思科预计2016年全球网络流量将会达到1.3ZB(1ZB = 10^9TB)3,如果Google给每1MB的请求减少1字节,则每年可以节省流量近500TB.这也是可能谷歌一直在使用这个原因之一吧.

小结

文章内容部分来源自网络,由免费部落整理发布.

部落个人觉得,HTML压缩对我这样的小网站,是没有多少意义的.如果您使用了CDN,那么即使压缩了,也不可能节省下多少流量下来,当然,可能有些站长会有其它的想法,欢迎拍砖.

评论 1 条 评论内容很精采,有内幕,而且绝对有干货

  1. 我爱动感单车网 2016年10月03日 14:05  @回复  Δ-49楼 回复

    到底好不好,小白的我只能是无从得知,反正我的博客在用这个HTML压缩。

给我留言