直接的页面不管怎么改动etag都没有变化是为什么

直接的页面不管怎么改动etag都没有变化是为什么,第1张

1、如果使用的是IE或者是基于IE的浏览器,那么问题可能是IE缓存造成的,工具—Internet选项,“常规”选项卡中有Internet临时文件,它是为了提高访问的速度,将某些页面存储在临时文件件中。

打开“设置”按钮,检查所存网页的较新版本,由“自动”改为“每次访问此页时检查”。

2、重新部署项目,这是最直接的办法,但是有一种情况下面是收不到效果的。在Tomcat目录Tomcat 6.0\work\Catalina\localhost中存在工程目录helloword,里面的内容主要是.java和.class文件,但是在某些非正常情况下面还会存在目录helloword.myeclipse.bak,其实这两个目录是属于同一个工程编译后的所生成的,如果当前访问的是helloword.myeclipse.bak,而所修改的jsp页面的内容被编译到helloword,那么无论是清除IE缓存还是重新部署都是没有用的,只要把localhost目录下的这两个目录删除,让tomcat重新去编译即可。

1、测试环境:

*** 作系统为REHL4,部署目标目录为/home/lighttpd;

2、使用版本:

使用lighttpd1.4.19版;

3、优化说明:

对etag头配置进行修改,,根据文件更新频繁程度,对不同的文件目录采用不同的expire策略;对于静态html/js/css文件均启用http压缩支持。主进程仅包含运行必须的模块,其他模块均排除,减少进程资源。

修改etag头是为了在集群环境中能够对相同的文件不用进行重复的请求,Lighttpd中可以通过设置etag.use-inode="disable",只设置mtime和size来解决这个问题,不过研发那边既然要求去掉Etag,那么就把Etag disable掉吧。(原来以为是可以将etag的输出disable掉的,但是如果同时启用了compress模块,会有问题,compress仍然会输出etag头,看了网上的一些文档,似乎可以通过hack手段修改源码来解决这个问题,但是没有时间去测试这个方法的稳定性,只得作罢。但是需要注意集群环境中文件的时间和大小需要一致)

4、测试说明:

对大日志(超过2G的日志)、系统性能、Etag和expire头均进行过基本的测试;

关于压缩功能的测试,需要说明一点,lighttpd的compress模块只对超过一定大小的文件才启用压缩,这个具体的文件大小也没有找到相关的说明。

5、部署拓扑:

使用四层交换机对客户的静态文件请求进行负载均衡调度,服务器之间用rsync来进行文件同步。

一、编译:

1、下载安装包:

安装mod cache需要打补丁,使用的lighttpd版本为lighttpd-1.4.19,对应的patch版本为lighttpd-1.4.19.modcache.v.1.4.4.patch (mod cache是一个类似于squid,可以通过lighttpd来实现squid的功能,考虑到将来的扩展和部署,可以在安装是将mod cache一并安装) 。

安装 mod cache需要gamin和pcre,也一并下载安装。按照下面的安装方式,所有的功能模块都是安装在同一个目录下面,这样便于整个备份和删除。

安装 mod cache 需要打补丁,需要一并下载。

由于HTTP无状态协议,有时需要保存资源状态信息或者用户信息,根据状态判断是否需要重新请求资源或者在相同域名和端口下读取用户信息。

缓存可以使浏览器重用已获取的资源和保存用户信息,优化静态资源的加载速度以及加速页面的渲染速度。

缓存包括很多方面,这里仅简要介绍下数据缓存Cookie及相关设置和浏览器header缓存匹配策略(ETag, Cache-Control)

一般Cookie是由首次请求时, 服务器在HTTP的响应头通过Set-Cookie给客户端的一串字符串及metadata,比如用户信息或资源状态信息或对缓存的控制信息等,浏览器收到响应后,会将Cookie保存在客户端一段时间,然后客户端每次访问的相同域名的网页时,浏览器会按照一定的原则(浏览器缓存策略)将Cookie发送给服务器。

Cookie的内容主要包括:名字,值,过期时间,路径和域。路径与域一起构成cookie的作用范围

注意 :

早期HTTP /1.0中则通过服务器在Header中Set-Cookie设置 Expires 来实现缓存控制,表示资源到什么时候过期(绝对时间),一旦修改本地时间,可能造成缓存失效。

早期HTTP /1.0使用首次响应返回Last-Modified,接下来请求头加上If-Modified-Since来实现协商缓存,相比ETag基于内容是否变更,其是否刷新缓存是通过修改时间是否变更来判断。有以下缺点:

若两者同时使用,则ETag优先级比Last Modified要高

注意:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11542105.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存