缓存

隐身守侯 提交于 2019-12-16 15:42:56

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

主要分:强缓存和协商缓存(Expires、cache-control、last-modified、ETag)

强缓存字段标识:

1、Expires(响应头中的过期时间点),问题:服务器的时间和浏览器的时间可能并不一致

2、Cache-Control(max-age:响应头中的过期时长)

    a、 public: 客户端和代理服务器都可以缓存

    b、private: 这种情况就是只有浏览器能缓存了,中间的代理服务器不能缓存。

    c、no-cache: 跳过当前的强缓存,发送HTTP请求,即直接进入协商缓存阶段

    d、no-store:非常粗暴,不进行任何形式的缓存。

    e、s-maxage:代理服务器缓存时间

 

协商缓存

强缓存失效之后,服务器根据这个tag( Last-Modified 和 ETag),来决定是否使用缓存

last-Modified:最后修改时间===》如果请求头中的这个值(If-Modified-Since)小于最后修改时间,说明是时候更新了。返回新的资源,跟常规的HTTP请求响应的流程一样。

ETag:服务器根据当前文件的内容,给文件生成的唯一标识==》客户端的值(f-None-Match)会和服务器端ETag对比,不同时更新

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!