基于HTTP浏览器缓存机制全面解析(2)

200 OK( from cache )不向服务器发送请求,直接使用本地缓存文件。304 Not Modified则向服务器询问,若服务器认为浏览器的缓存版本还可用,那么便会返回304。

200 OK( from cache ) 出现操作:

1.地址栏回车

2.页面链接跳转

3.前进、后退

304 Not Modified 出现操作:

1.F5刷新

2.新开窗口

缓存的不同来源

from disk cache:从磁盘中获取缓存资源,等待下次访问时不需要重新下载资源,而直接从磁盘中获取。它的直接操作对象为CurlCacheManager。

from memory cache:从内存中获取资源,等待下次访问时不需要重新下载资源,而直接从内存中获取。

两者区别:当退出进程时,内存中的数据会被清空,而磁盘的数据不会,所以,当下次再进入该进程时,该进程仍可以从diskCache中获得数据,而memoryCache则不行。

不能被缓存的请求

当然并不是所有请求都能被缓存。

无法被浏览器缓存的请求:

HTTP信息头中包含Cache-Control:no-cache,pragma:no-cache(HTTP1.0),或Cache-Control:max-age=0等告诉浏览器不用缓存的请求

需要根据Cookie,认证信息等决定输入内容的动态请求是不能被缓存的

经过HTTPS安全加密的请求

POST请求无法被缓存

HTTP响应头中不包含Last-Modified/Etag,也不包含Cache-Control/Expires的请求无法被缓存

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwwpfz.html