`

浏览器缓存url请求

阅读更多
最近遇到浏览器缓存url的问题,google了一把,学到不少东西,结合网上其他人文章拼凑一篇,供大家交流。
   
一 防止url被浏览器缓存
根据 HTTP 规范,GET 用于信息获取,而且应该是幂等的。也就是说,当使用相同的URL重复GET请求会返回预期的相同结果时,GET方法才是适用的。当对一个请求有副作用的时候(例如,提交数据注册新用户时),应该使用POST请求而不是GET。 所以浏览器会对GET请求做缓存处理。

解决办法:

1. GET请求URL后加随机数,让服务器认为不是相同的请求。
例 “http://www.example.com/index.php?class=aitcle&page=5&_t=” + new Date().getTime()
2. 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“If-Modified-Since”,”0″)
3. 在ajax发送请求前加上 xmlHttpRequest.setRequestHeader(“Cache-Control”,”no-cache”);
4. 服务端响应请求时加 header(“Cache-Control: no-cache, must-revalidate”); (PHP)
5. 使用POST代替GET,浏览器不会对POST做缓存


二.防止jsp页面内容被缓存:
    防止JSP页面缓存为了防止浏览器缓存当前访问的JSP动态页面,可以采用如下的方式进行设置:
<%
// 将过期日期设置为一个过去时间
response.setHeader("Expires", "Sat, 6 May 1995 12:00:00 GMT");
// 设置 HTTP/1.1 no-cache 头
response.setHeader("Cache-Control", "no-store,no-cache,must-revalidate");
// 设置 IE 扩展 HTTP/1.1 no-cache headers, 用户自己添加
response.addHeader("Cache-Control", "post-check=0, pre-check=0");
// 设置标准 HTTP/1.0 no-cache header.
response.setHeader("Pragma", "no-cache");
%>

三.防止html页面被缓存(jsp也适用)
     禁止客户端缓存要在<head>中加入类似如下内容:
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">  
分享到:
评论

相关推荐

    HTTP+JS+浏览器缓存技术

    2. 使用 jQuery Ajax 清除浏览器缓存:可以使用 $.ajax() 方法并设置 cache:false,或者使用 If-Modified-Since 和 Cache-Control 请求头来清除浏览器缓存。 3. 使用随机数或随机时间来避免缓存:可以在 URL 参数后...

    js浏览器缓存.doc

    在进行Web开发的过程中,开发者可能会遇到一个较为隐蔽但十分常见的问题——浏览器缓存导致的重复请求失效现象。特别是使用某些JavaScript库(如Prototype.js)时,如果多次发出相同的GET请求,可能会发现除了首次...

    jsp去除浏览器缓存

    ### jsp去除浏览器缓存详解 #### 一、引言 在Web开发中,为了提高用户体验及页面加载速度,浏览器通常会缓存一部分资源。但有时为了确保用户获取到最新的内容,我们需要禁止或控制浏览器对特定页面的缓存。本文将...

    消除浏览器的301重定向缓存

    打开一个新的TAB页,再次请求上面的网址,可以看到浏览器重定向到http://www.baidu.com,同时控制台没有输出,则此时301请求被浏览器缓存。关闭IE10或IE11,再重新打开,浏览器输入上面的网址,可以看到浏览器重定向...

    Js 代码中,ajax请求地址后加随机数防止浏览器缓存的原因

    一开始搞不懂为什么,网上查了资料,原因是防止浏览器缓存。 浏览器为了提高用户访问同一页面的速度,会对页面数据进行缓存。当url请求地址不变时, 有时候会导致浏览器不发送请求,直接从缓存中读取之前的数据。 ...

    web项目页面缓存清除,不用每次刷新浏览器

    例如,设置Cache-Control为`no-cache`或`no-store`可以防止浏览器缓存页面,`must-revalidate`则要求每次请求都验证资源是否更新。 2. **HTML5的Service Worker**:Service Worker是一种在浏览器后台运行的脚本,它...

    两次请求相同的一个URL,会产生缓存问题。

    如果在这一小时内再次请求该URL,浏览器将使用缓存的副本,而不是向服务器发送新的请求。这样可以显著减少网络延迟和服务器压力。 然而,缓存问题可能出现在以下情况: 1. **过期的缓存**:如果服务器上的资源已...

    浏览器缓存问题5个.docx

    **问题描述**:跨域请求的响应默认不允许被浏览器缓存,但在某些情况下,开发者希望这些结果也可以被缓存。 **原因分析**:为了安全起见,浏览器默认不会缓存带有`Authorization`头或`Origin`头的跨域请求。 **...

    js清除浏览器缓存的几种方法

    本文介绍了几种使用JavaScript清除浏览器缓存的方法,包括使用meta标签、表单临时缓存清理、利用AJAX请求更新缓存、应用随机数或时间戳以及后端脚本清除浏览器缓存。 1. 使用meta标签清除缓存 开发者可以通过在HTML...

    浅谈Ajax请求与浏览器缓存

    浏览器缓存则是浏览器为了提高性能和减少网络传输,而对先前请求的响应进行存储的一种机制。 使用Ajax请求时,浏览器缓存可以通过以下方式提高性能和用户体验: 1. 减少数据传输:当Ajax请求能够使用缓存时,浏览器...

    一、浏览器渲染原理(进程、线程)http请求全过程-浏览器输入url整个过程

    简要来说,很多网站第二次访问能够秒开,是因为这些网站把很多资源都缓存在了本地,浏览器缓存直接使用本地副本来回应请求,而不会产生真实的网络请求,从而节省了时间。同时,DNS 数据也被浏览器缓存了,这又省去了...

    【ASP.NET编程知识】ASP.NET MVC中使用jQuery时的浏览器缓存问题详解.docx

    ASP.NET MVC中使用jQuery时的浏览器缓存问题详解是指在ASP.NET MVC应用程序中使用jQuery库进行Ajax请求时遇到的浏览器缓存问题。浏览器缓存是指浏览器将服务器端返回的数据缓存在本地,以便下次请求时可以快速获取...

    JavaWeb如何实现禁用浏览器缓存

    1. 虽然上述方式通常能有效禁用浏览器缓存,但并非所有浏览器都完全遵循这些标准,因此在特定情况下可能仍需要其他措施,如动态生成URL(例如添加时间戳)来防止缓存。 2. 禁用缓存可能导致性能下降,因为每次请求...

    chrome浏览器缓存提取软件

    Chrome浏览器缓存提取软件,如`Chromecacheview`,是专门用于挖掘和分析Google Chrome浏览器中的缓存数据的工具。它可以帮助用户查看、导出和管理浏览器在浏览网页时存储的各种临时文件,包括图片、JavaScript、CSS...

    浏览器缓存

    浏览器缓存是为了提高网页加载速度,它会存储之前访问过的网页资源,如图片、CSS、JavaScript等,当用户再次访问相同资源时,浏览器会直接从缓存中读取,而不是向服务器请求。 要解决这个问题,我们需要确保浏览器...

    清除Jquery缓存

    为了避免由于浏览器缓存导致的开发过程中出现的问题,开发人员需要确保每次修改文件后都能立即看到效果。此时就需要使用方法来清除浏览器的缓存。 ### 使用`jQuery.ajaxSetup({cache:false})`清除缓存 #### 代码...

    模拟浏览器发送http请求的工具

    状态码(如200、404、500等)提供了服务器对请求处理的成功与否的反馈,而响应头可能包含缓存控制、服务器信息、内容长度等重要数据。响应体通常包含了服务器返回的实际数据,可以是JSON、HTML或其他格式。 压缩包...

    存储篇 1:浏览器缓存机制介绍与缓存策略剖析(1).md

    理解了这个过程,就能够更好地应用浏览器缓存机制,通过减少DNS解析、TCP连接、HTTP请求等环节来提升性能。 ### 总结 浏览器缓存是前端性能优化的重要手段,了解并掌握不同类型的缓存机制对于实现有效优化至关重要...

Global site tag (gtag.js) - Google Analytics