tomcat压缩内容

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

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

开启tomcat进行压缩的设置

1
2
3
4
<Connectorport="8080"
 protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"/>

设置为:

1
2
3
4
5
6
7
8
9
<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”);

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

最新文章

  1. HTML5学习笔记
  2. R语言XML格式数据导入与处理
  3. SolrCloud环境配置
  4. 剑指架构师系列-tomcat6通过IO复用实现connector
  5. unity3d中Find的用法
  6. PLSQL_基础系列12_替换函数用法REPLACE / TRANSLATE / REGEXP_REPLACE
  7. 一点简单的关于ASP.NET下载
  8. JAVA并发,CountDownLatch使用
  9. jquery 仅仅读
  10. iOS由ImageIO.framework实现gif的系统解码
  11. 写一篇 Bootstrap弹窗确认的文章。本周完成
  12. Chrome DevTools 调研笔记
  13. Unity 游戏框架搭建 (一) 概述
  14. VMware workstation虚拟集群实践(1)—— 配置集群多节点互信
  15. vue+mescroll=VScrollFull
  16. Java反射,注解,以及动态代理
  17. BZOJ2150部落战争——最小路径覆盖
  18. [f]计时器
  19. mysqlclient and mysql-python安装出错方法
  20. 【python-opencv】30-角点检测

热门文章

  1. Jrebel 6.2.1破解
  2. C++编程规范之11:隐藏信息
  3. qt宽字符串中文乱码(codec-&gt;toUnicode值得学习)
  4. Linux统计文件/目录数量ls -l | grep &quot;^-&quot; | wc -l匹配开头和结尾
  5. Linux多线程编程的时候怎么查看一个进程中的某个线程是否存活
  6. Java反射机制的使用方法
  7. css中的hover ,关于li与a标签的问题
  8. 14.4.3.4 Configuring InnoDB Buffer Pool Prefetching (Read-Ahead) 配置InnoDB Buffer pool 预读
  9. Cocos2d-x 创建(create)动画对象CCAnimation报错分析
  10. Go的String转码包