http://www.workcss.com/ 我们知道,对于WEB页面中的JS和CCS,并不会每次都请求完整的内容,有时候会直接利用本地的缓存;而对页面本身,却往往会去加载完整内容,对于服务器来说可能每次也要生成完整的内容,并送到客户端;同样的,对于一些http接口,每次调用也会去
我们知道,对于WEB页面中的JS和CCS,并不会每次都请求完整的内容,有时候会直接利用本地的缓存;而对页面本身,却往往会去加载完整内容,对于服务器来说可能每次也要生成完整的内容,并送到客户端;同样的,对于一些http接口,每次调用也会去重新生成数据,浏览器也会重新加载完整的数据;
但有这样一些页面,虽然是动态的但变动频率较小,且对于同一用户重复调用可能很多(比如说个人管理后台或者新闻首页面),我们希望像js或者ccs那样在客户端缓存起来.并且,在我们希望的时候,可以更新客户端备份的那个页面,或者接口数据.是否可以做到呢;
事实上,浏览器可以缓存js,就一定能缓存我们的动态页面;
先研究下js是如何缓存起来的:
用firebug看一下js的加载:
先强刷(ctrl+F5)一下 http://www.workcss.com/页面,观看js的加载如图
状态为200 , 查一下200的含意 :
请求成功(其后是对GET和POST请求的应答文档。)
这是对js文件的完整加载; 再直接F5刷新下 http://www.workcss.com/ ,观看js的加载如图 状态为304,再查一下304的含意: 未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since
这是对js文件的完整加载;
状态为304,再查一下304的含意:
未按预期修改文档。客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户只想比指定日期更新的文档)。服务器告诉客户,原来缓冲的文档还可以继续使用。
此时其实并没有从服务端加载完整文件而是去读的本地缓存;
从304的描述来看,我们知道,请求依然发出,并由服务端告知浏览器,掉用缓存;
我们可以总结出两点:
1.由于服务端只是返回简单的头信息,并没有生成完整页面,所以虽然请求依然发出,对于浏览器和服务器来说都更快更轻松了;
2.我们可以控制浏览器去更新缓存
相关推荐
最新,C# MVC HttpModule 防盗链和图片304缓存。网上有很多文章,比较坑多没实际代码,我再这里小试牛刀。也绕了一些坑,这里可以快速绕过。
先来说一下缓存的优点 减少了冗余的数据传递,节省宽带流量 减少了服务器的负担,大大提高了网站性能 加快了客户端加载网页的速度 这也正是HTTP缓存属于客户端缓存的原因 强制缓存 当缓存数据库中已经有了请求的...
协商缓存:也称304缓存,向服务器发送请求,由服务器判断请求文件是否发生改变。如果未发生改变,则返回304状态码,通知客户端直接使用本地缓存;如果发生改变,则直接返回请求文件。 浏览器缓存机制的过程如下: ...
17.2.4 使用自定义字符串改变缓存内容 304 17.2.5 设置缓存位置 305 17.3 使用页面分段缓存 306 17.4 使用页面数据缓存 308 17.5 缓存依赖项 310 17.5.1 文件缓存依赖 310 17.5.2 其他缓存依赖 311 17.6 常见问题 ...
ECSHOP3.6 H5网路错误解决方案(php.ini,httpd.conf,CorsService.php和304 Not Modified缓存错误)
web服务器缓存静态资源,更新静态资源的规则,静态资源如css,js文件 HTTP CODE 304.zip
本机缓存设置 浏览器缓存是为了提高加载速度,因此我们可以通过Nginx对静态文件进行缓存。 location ~ ^/(images|javascript|js|css|flash|media|static)/ { #过期30天 expires 30d; } 定义错误提示页面 error_...
可以从缓存中提取出媒体文件!
就有可能会缓存,因为静态页面有200和304状态 iframe的src如果是动态页面就不会缓存,因为动态页面的都是200状态 iframe的src为伪静态页面的话,需要分析伪静态页面会不会有304状态,有的话也会缓存 希望对遇到同样...
主要介绍了PHP使用header()输出图片缓存的方法,涉及使用缓存处理图形文件的技巧,非常具有实用价值,需要的朋友可以参考下
我前面写过浏览器缓存的文章,也写过html5离线缓存,关于这些缓存,我们很容易搞不清,例如:200 OK (FROM MemoryCache、FROM DiskCache) 及 304 NOT MODIFIED 还有 application cache (离线缓存)等等。 200 from me
今天发现线上有个问题,线上一个图片域名,在前端已经加了CDN缓存,不落缓存,则用PHP动态实现图片缩放,但经PHP处理过的图片输出后,每次都要从后端读取,后端服务器压力瞬间增加,经分析,PHP中没有作304的处理, ...
该库还处理一些有用的HTTP缓存标头,以防止发送客户端已缓存的数据(304未修改)。例子 // Dictionary API that caches all words that match a given letter, each day// (GET /?letter=a)var db = require ( ... ...
产品特点仅存储RFC 7234定义的可缓存响应新鲜的缓存条目直接从缓存中提供使用If-None-Match / If-Modified-Since标头重新验证陈旧的缓存条目来自重新验证请求的304个响应使用缓存的正文更新缓存响应中的Age标头可以...
食人魔缓存 内容向添加一个简单而粗鲁的支持,以利用浏览器缓存。 该框架已经在使用maxAge选项支持缓存,但是这种缓存是最弱的一种。 依靠HTTP 304状态代码将无法避免向服务器询问资源是否仍然“新鲜”的往返过程。 ...
#什么是xhttpcache? ()Xhttpcache是HTTP静态缓存服务,它也是NOSQL数据库作为KV存储,支持REDIS协议接口以及HTTP协议的REST接口。 #xhttpcache的功能是什么? 为HTTP数据提供缓存服务并支持二进制数据存储...
利用HTTP开发可缓存的网站这段示例代码使用框架来说明如何利用HTTP...以控制生存时间基于Vary标头的缓存变化基于Etag标头的条件请求成功验证内容后返回HTTP 304状态代码基于Accept-Language标头的内容协商和语言选择使
Not Modified 客户端有缓冲的文档并发出了一个条件性的请求(一般是提供If-Modified-Since头表示客户...只要判断这个时间和当前请求的文件的修改时间就可以确定是返回 304 还是 200 。对于静态文件,例如:CSS、图片,
该库是封装了okhttp的标准RESTful风格的网络框架,可以与RxJava...提供网络缓存功能,默认支持304缓存协议,并额外扩展了三种本地缓存模式 支持301、302重定向 支持链式调用 支持可信证书和自签名证书的https访问
协商缓存:在请求服务器时返回304,与服务端协商之后,通过协商结果来判断是否使用本地缓存 If-Modified-Since 和 Last-Modified:基于时间实现,在发现请求到的资源携带 Last-Modified,那 么在下一次请求时,会将...