awesome-fenix icon indicating copy to clipboard operation
awesome-fenix copied to clipboard

「Comment」https://icyfenix.cn/architect-perspective/general-architecture/diversion-system/client-cache.html

Open fenixsoft opened this issue 4 years ago • 9 comments

https://icyfenix.cn/architect-perspective/general-architecture/diversion-system/client-cache.html

fenixsoft avatar Apr 14 '20 13:04 fenixsoft

“no-store不强制会话中相同URL资源的重复获取,但禁止浏览器、CDN等以任何形式保存该资源。”不能保存该资源,除了重复获取之外,还有别的方法吗?前半句话似乎有些多余困扰了初学者

“no-cache指明该资源不应该被缓存”,我在《图解HTTP》一书中看到说是no-cache代表不缓存过期的资源,照您这篇的逻辑是不是可以表述为:强制缓存失效但协商缓存仍生效?

UUNNFLY avatar Dec 28 '20 14:12 UUNNFLY

@UUNNFLY

“no-store不强制会话中相同URL资源的重复获取,但禁止浏览器、CDN等以任何形式保存该资源。”不能保存该资源,除了重复获取之外,还有别的方法吗?前半句话似乎有些多余困扰了初学者

“不强制重复获取”是针对有一些资料认为“同一页面多次使用同一资源,譬如一个页面中放置了URL完全相同的两张图片,no-store会导致两次重复获取请求”而加入的。不能缓存不代表要重复获取。

“no-cache指明该资源不应该被缓存”,我在《图解HTTP》一书中看到说是no-cache代表不缓存过期的资源,照您这篇的逻辑是不是可以表述为:强制缓存失效但协商缓存仍生效?

对,强制缓存失效但协商缓存中的ETag仍生效。

fenixsoft avatar Dec 29 '20 01:12 fenixsoft

“only-if-cached表示要求客户端要求不发送网络请求”这句好拗口

bigbenfather avatar Feb 07 '21 03:02 bigbenfather

“only-if-cached表示要求客户端要求不发送网络请求”这句好拗口

确实,已修改

fenixsoft avatar Feb 07 '21 07:02 fenixsoft

"public和private:指明是否涉及到用户身份的私有资源,如果是 public,着可以被代理、CDN 等缓存,如果是 private,着只能由用户的客户端进行私有缓存。"其中"着可以"和"着只能"是"则可以"和"则只能"吧?

TeeMoCode avatar Jun 18 '21 07:06 TeeMoCode

"public和private:指明是否涉及到用户身份的私有资源,如果是 public,着可以被代理、CDN 等缓存,如果是 private,着只能由用户的客户端进行私有缓存。"其中"着可以"和"着只能"是"则可以"和"则只能"吧?

感谢,已修正。

fenixsoft avatar Jun 19 '21 06:06 fenixsoft

Last-Modified 和 If-Modified-Since:l Last-Modified 是服务器的响应 Header l 是多余的吧

wwnj avatar Jul 13 '21 01:07 wwnj

no-cache和no-store:no-cache 指明该资源不应该被缓存,哪怕是同一个会话中对同一个 URL 地址的请求,也必须从服务端获取,令强制缓存完全失效,但此时下一节中的协商缓存机制依然是生效的

根据约定,协商缓存不仅在浏览器的地址输入、页面链接跳转、新开窗口、前进、后退中生效,而且在用户主动刷新页面(F5)时也同样是生效的,只有用户强制刷新(Ctrl+F5)或者明确禁用缓存(譬如在 DevTools 中设定)时才会失效,此时客户端向服务端发出的请求会自动带有“Cache-Control: no-cache”。

这两段对于no-cache作用的描述 是否矛盾了?

scut-bingo avatar Sep 26 '21 01:09 scut-bingo

no-cache和no-store:no-cache 指明该资源不应该被缓存,哪怕是同一个会话中对同一个 URL 地址的请求,也必须从服务端获取,令强制缓存完全失效,但此时下一节中的协商缓存机制依然是生效的

这段话的意思是请求带有no-cache会导致强制缓存失效, 但协商缓存依然生效

根据约定,协商缓存不仅在浏览器的地址输入、页面链接跳转、新开窗口、前进、后退中生效,而且在用户主动刷新页面(F5)时也同样是生效的,只有用户强制刷新(Ctrl+F5)或者明确禁用缓存(譬如在 DevTools 中设定)时才会失效,此时客户端向服务端发出的请求会自动带有“Cache-Control: no-cache”。

这段话的意思是协商缓存失效时发送的请求带有no-cache. 引申含义是不是: 请求带有no-cache会导致协商缓存失效? 这样的话上述两段话是不是存在矛盾?

望指教

JaedongLee avatar Oct 13 '21 03:10 JaedongLee