Tomcat 压缩优化和缓存策略

建议不要直接使用Tomcat进行压缩等,可以通过Nginx等进行静态页面的缓存与压缩等,这样可以有效降低Tomcat的负担。

tomcat压缩内容

tomcat的压缩优化就是将返回的html页面等内容经过压缩,压缩成gzip格式之后。发送给浏览器,浏览器在本地解压缩的过程。

对于页面量信息大或者带宽小的情况下用压缩方式还是蛮适用的。

开启tomcat进行压缩的设置,将:

<Connectorport="8080"

 protocol="HTTP/1.1"

connectionTimeout="20000"

redirectPort="8443"/>

设置为:

<Connectorport="8080"

  protocol="HTTP/1.1"

  connectionTimeout="20000"

  redirectPort="8443"

  compression="on"

  compressionMinSize="2048"

  noCompressionUserAgents="gozilla,traviata"

  compressableMimeType="text/html,text/xml,text/css,application/javascript,text/plain"

 />

当中:

     ●compression="on"   打开压缩功能 
     ●compressionMinSize="2048"启用压缩的输出内容大小,默觉得2KB 
     ●noCompressionUserAgents="gozilla,traviata" 对于下面的浏览器,不启用压缩 
     ●compressableMimeType="text/html,text/xml,text/javascript,text/css,text/plain" 哪些资源类型须要压缩

效果:

没有开启压缩的情况下 http://localhost/docs/ 13605字节,开启之后 訪问  http://localhost/docs/ 4244字节。

Tomcat缓存策略

    过程:

    ①浏览器第一次请求tomcatserver某资源

    ②tomcat查询到该资源。并将该资源最后改动的时间保存在响应头的Last-Modified中 (Last-Modified: Tue, 11 Jul 2000 18:23:51 GMT) 

    ③浏览器第二次訪问tomcat请求该资源。并将之前该资源的最后改动时间放入If-Modified-Since请求头中

    ④server收到该请求,比較该请求中的If-Modified-Since与资源最后改动时间Last-Modified是否一致,假设一致则不向其发送该资源并向其发送响应代码304告诉其去本地取缓存。

    (Last-Modified与If-Modified-Since仅仅能将改动时间精确到秒。Etag与If-None-Match 将改动时间精确到微秒)

     * ETag: W/"13397-1184876416000" tomcat生成Etag 13397文件大小 

     * client下次请求时通过If-None-Match 携带刚刚 Etag信息

控制该程序在client不缓存

在response设置头文件(三句话都设置。防止浏览器的兼容问题)

Expires: -1
Cache-Control: no-cache  
Pragma: no-cache   



response.setHeader(“Cache-Control”,”no-cache”);

response.setDateHeader(“Expires”,-1);

response.setHeader(“Pragma”,”no-cache”);

* 对于动态程序,常常改动, 禁止浏览器缓存内容

猜你喜欢

转载自blog.csdn.net/qq_36761831/article/details/89415052
今日推荐