荣耀路由pro 网件:解决HTTP数据不更新问题——no-cache在HTTP通信协议中的应用
来源:百度文库 编辑:九乡新闻网 时间:2024/07/14 03:00:33
解决HTTP数据不更新问题——no-cache在HTTP通信协议中的应用收藏 收藏
来源:http://blog.csdn.net/froole/archive/2009/02/13/3886957.aspx HTTP服务器向客户端返回的头信息中可以包含Cache-Control:no-cache信息,意为“数据内容不被储存”。很多WEB程序设计中,通常并不需要考虑这一点。但是,对相同URL的请求,并需要动态数据时,就需要程序员对服务器返回头信息的进行修改。例如,通过Ajax向同一个URL发送请求、页面访问同一个URL并需要动态显示页面内容。在不对服务器所返回头信息做任何修饰的情况下,Cache-Control可能不被添加,此时,浏览器将缓存从服务器取得的信息。如果再次访问网页,浏览器会直接读取缓存数据,而非访问HTTP服务器,如果通过代理再次访问网页,那么,代理服务器将会直接向浏览器返回一个302状态,命令浏览器从缓存读取数据。 本文想定开发人员遭遇以下两种情况: 1.Ajax中,需要通过一个URL适时提取动态数据(例如,使用DWR提取某个POJO的数据); 2.在一个网页中,通过对某个连接的重复访问(发送请求),动态读取不同的页面数据(例如,根据某个项目的列排序)。 如果可以在设计阶段,就已经考虑到通过URL参数,改变URL,倒也不需要考虑缓存的问题。但是,如果URL相同,就会出现相应数据更新迟缓的现象。例如,如果访问速度相对较快,第一次访问和第二次访问的数据,在同一个客户端是相同的。也就是HTTP数据不更新/更新迟缓现象。解决此问题的方法,就是向服务器的返回头信息“Cache-Control:no-cache”。 PHP的情况,可以向相应的返回处理中添加以下代码: view plaincopy to clipboardprint? header("Cache-Control: no-cache"); header("Cache-Control: no-cache"); Java的情况,可以定义相应的URL,通过操作HttpServletResponse定义头信息,如下: view plaincopy to clipboardprint? public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } 以上两个例子,虽然是在不同语言下的实现,但是从HTTP协议通信的角度,其效果是类似的。 使用Cache-Control需要注意的通过控制Cache-Control头信息,可以让浏览器(代理服务器)及时更新请求数据。但是要注意的是,只有在HTTP1.1下才Cache-Control被支持。当然,HTTP的版本在大多数WEB开发中,同样不需要考虑。而目前的主流浏览器也都是默认支持HTTP1.1。但是,如果使用IE6,并且通过代理服务器访问网站的时候,浏览器的HTTP请求就要变成HTTP1.0了。这个时候,Cache-Control就会失效,而且无法从服务器端控制HTTP协议版本。只能通过浏览器的设定来解决,方法是,通过IE详细设置中的HTTP1.1设定来解决。如果可能,也可以把目标服务器排除在代理目标之外。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tongdoudpj/archive/2009/02/15/3894103.aspx
来源:http://blog.csdn.net/froole/archive/2009/02/13/3886957.aspx HTTP服务器向客户端返回的头信息中可以包含Cache-Control:no-cache信息,意为“数据内容不被储存”。很多WEB程序设计中,通常并不需要考虑这一点。但是,对相同URL的请求,并需要动态数据时,就需要程序员对服务器返回头信息的进行修改。例如,通过Ajax向同一个URL发送请求、页面访问同一个URL并需要动态显示页面内容。在不对服务器所返回头信息做任何修饰的情况下,Cache-Control可能不被添加,此时,浏览器将缓存从服务器取得的信息。如果再次访问网页,浏览器会直接读取缓存数据,而非访问HTTP服务器,如果通过代理再次访问网页,那么,代理服务器将会直接向浏览器返回一个302状态,命令浏览器从缓存读取数据。 本文想定开发人员遭遇以下两种情况: 1.Ajax中,需要通过一个URL适时提取动态数据(例如,使用DWR提取某个POJO的数据); 2.在一个网页中,通过对某个连接的重复访问(发送请求),动态读取不同的页面数据(例如,根据某个项目的列排序)。 如果可以在设计阶段,就已经考虑到通过URL参数,改变URL,倒也不需要考虑缓存的问题。但是,如果URL相同,就会出现相应数据更新迟缓的现象。例如,如果访问速度相对较快,第一次访问和第二次访问的数据,在同一个客户端是相同的。也就是HTTP数据不更新/更新迟缓现象。解决此问题的方法,就是向服务器的返回头信息“Cache-Control:no-cache”。 PHP的情况,可以向相应的返回处理中添加以下代码: view plaincopy to clipboardprint? header("Cache-Control: no-cache"); header("Cache-Control: no-cache"); Java的情况,可以定义相应的URL,通过操作HttpServletResponse定义头信息,如下: view plaincopy to clipboardprint? public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { ((HttpServletResponse) response).setHeader("Cache-Control", "no-cache"); chain.doFilter(request, response); } 以上两个例子,虽然是在不同语言下的实现,但是从HTTP协议通信的角度,其效果是类似的。 使用Cache-Control需要注意的通过控制Cache-Control头信息,可以让浏览器(代理服务器)及时更新请求数据。但是要注意的是,只有在HTTP1.1下才Cache-Control被支持。当然,HTTP的版本在大多数WEB开发中,同样不需要考虑。而目前的主流浏览器也都是默认支持HTTP1.1。但是,如果使用IE6,并且通过代理服务器访问网站的时候,浏览器的HTTP请求就要变成HTTP1.0了。这个时候,Cache-Control就会失效,而且无法从服务器端控制HTTP协议版本。只能通过浏览器的设定来解决,方法是,通过IE详细设置中的HTTP1.1设定来解决。如果可能,也可以把目标服务器排除在代理目标之外。本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tongdoudpj/archive/2009/02/15/3894103.aspx
解决HTTP数据不更新问题——no-cache在HTTP通信协议中的应用
HTTP消息头中的“Cache-control”介绍
利用HTTP Cache来优化网站
成交量及夹板看盘法在实战中的应用 -原帖:http://www.gupiao168.com/bbs/thread-526133-1-16.html
USB118AD在数据采集中的应用
认真研究解决经济发展中的突出问题 ——温家宝总理在陕西考察纪实
认真研究解决经济发展中的突出问题——温家宝总理在陕西考察纪实
http://www.6337711.com -电梯 新技术在电梯选型配置方面的应用
中国合成孔径雷达及应用研讨会在京召开(图)http://n
TCP/IP协议在卫星数据通信网中的应用
动态数据交换在工业自动控制组态系统中的应用
局域网中的通信协议及选择
李讷与阮铭在文革中的秘密活动--洋洋大观--http://paowang.com
EasyRecovery数据恢复软件使用方法 - Power By http:/...
女孩站起答题时同桌在椅子上放笔 笔尖滞留体内-八卦网—娱乐八卦综合资讯门户-http://...
千千——腾讯博客 [http://850280109.qzone.qq.com]
书法空间——http://www.9610.com
书法空间——http://www.9610.com
【书法精品】书法空间——http://www.9610.com
书法空间——http://www.9610.com
姜悦平教授讲座—教学艺术与课堂教学质量|http://
旗袍美女—时尚PK古典(http://www.pepfilm.com/)
Http协议
http://www