关于缓存有关问题

WBOY
Libérer: 2016-06-13 13:34:11
original
953 Les gens l'ont consulté

关于缓存问题
1、

aa


 关于缓存有关问题
 关于缓存有关问题


为了验证浏览器缓存,我进行如下操作:
第一次正常打开这个页面。然后第二次,在地址栏按回车(不是刷新)访问

以下访问方式均是在第二次(回车访问)访问时抓取的包:
(1)在IE用httpwatch看,确实是从缓存中读的文件,而且没有向服务器端发送HTTP请求
 
(2)在FireFox下用FireBug看,应该也是从缓存中读取的文件,因为这个页面只发起了一次HTTP请求(第一次是3个)。
问题是:它为什么还会发起这个请求呢?不是应该直接从本地读取文件吗?
 

2、
为了使这个文件禁用缓存,我做了如下设置:
Expires: -1
Cache-Control: no-cache
pragma: no-cache

用 IE看,确实没有从缓存中读取文件,而是发起了一个HTTP请求,而且返回了200。但是我的问题是,如果没有从缓存中读这个文件,那浏览器应该向服务器发送3次请求才对啊?即便图片被缓存,也应该发起请求返回304码以后,再从本地读啊。为什么它只发起了一次呢???
 


3、
浏览器一般默认缓存页面的时间是多久呢?如何在HTTP响应头信息中设置呢?




非常感谢!!! : )


------解决方案--------------------
1、正常的流程是发起一次请求,以判断目标文件是否发生了改变。如没有改变则从缓存读取
IE 在感知地址栏内容没有改变时,就不发起请求,这也是可能的
2、你禁用缓存的头只作用于页面文件自身,并没有作用于图片(你没说对图片也禁用了缓存)
------解决方案--------------------
浏览器和浏览器是不同的,有的浏览器是根本不理会你那些浏览器缓存报文头的,一律使用etag/if-modified-since请求服务器,有的浏览器可能是不管你是否expires 是1970年什么的或者cache-control:no-cache的不缓存response, 都缓存一段时间。 一般浏览器都是后者,也就是说浏览器缓存是实现相关的,协议是协议,浏览器的实现是浏览器实现者的问题。
Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!