浏览器存储Etag的方式和时间
How and for how long do browsers store Etags?
我希望实现基于ETag
的cache-control
,我想知道ETags
在浏览器中存储了多长时间,以及它们是否可以保持比当前会话更长的时间。
我有服务器设置并正确发送响应的ETags
,并且我使用jQuery.ajax
从浏览器发送请求。
系统工作正常,如果Not-Modified
标头(以前的ETag
)与服务器上生成的ETag
匹配,则使用适当的304响应进行响应。这一切对当前会话来说都很好,但当我关闭浏览器并重新打开它时,jQuery不再发送Not-Modified
标头。
我想知道是否有任何方法可以用来触发默认的浏览器行为,并发送响应的Not-Modified
标头(如果适用),而无需在ajax请求中手动设置标头或将ETag
存储在localStorage
/indexedDb
中。
Etag必须附带其他标签,告诉浏览器保存内容的时间
https://developers.google.com/speed/docs/best-practices/caching?csw=1#LeverageBrowserCaching
为所有可缓存资源指定Expires或Cache Control max-age之一,以及Last Modified或ETag之一非常重要。同时指定Expires和Cache Control:max age,或者同时指定Last Modified和ETag是多余的
因此,这一切都取决于你用Expires或最大年龄标签指定的持续时间,以及浏览器将保持的时间
etag的唯一目的是让浏览器可以在最初的过期期后发出"如果修改了"请求,看看内容是否真的发生了更改或返回了未修改的304。
管理不善的304可能会导致其他问题,如不必要的和冗余的304请求:http://calendar.perfplanet.com/2010/easy-cache-headers/
- 如何在拉拉维尔中以不同的方式比较日期和时间
- 在Javascript中以与在PHP中相同的方式存储时间
- 删除上午、下午拖尾时间的最佳方式
- 调用后端时,页面会失去对齐方式,并且需要一些时间来重新对齐控件
- 以编程方式创建涵盖特定持续时间的雷声
- 以可在 Azure 移动服务 (Javascript) 中查询的方式保存日期时间
- 以基于时间的方式消失警报框
- 浏览器存储Etag的方式和时间
- 确保内容在有时间限制的环境中随时可用的最佳方式
- 创建基于时间的动态事件(如建筑施工时间等)的最佳方式是什么
- Bootstrap日期选择器以编程方式从Epoch设置时间
- 多种图标尺寸,使用方式,地点和时间
- 最好的方式做一个手表在javascript与服务器时间同步
- 我如何发现我的Open Graph应用程序是否已经以编程方式添加到时间轴中?
- 根据函数首次运行的时间,以不同的方式执行函数
- 在任何时间日期选择器中以编程方式设置时区偏移量
- 基于时间运行代码的有效方式
- 最有效的方式减少加载时间和带宽使用的图像
- 当我发出警报时,我的javascriptcode正在工作.我需要以计数器格式显示时间(秒递减方式)
- 哪一种是自定义的,通过书本的方式获取用户的本地时间/时区?(或者:谷歌/脸书是怎么做到的?)