Expires和Cache-Control都是 HTTP 响应头,用于控制浏览器缓存,但它们在机制和使用上有一些关键区别: Expires: 机制:Expires使用一个绝对的日期时间值来指定缓存的过期时间。例如Expires: Wed, 21 Oct 2025 07:28:00 GMT。 缺点:依赖客户端和服务器的时间同步。如果客户端时间设置不准确,缓存机制可能会失效。 HTTP ...
1.概念Cache-control 用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了 Pragma: no-cache) Expires 表示存在时间,允许客户端在这个时间之前不去检查(发请求),等同max-age的效果。但是如果同时存在,则被Cache-Control的max-age覆盖。 2格式 Cache-control: 数据包中的格式: Cache-Control: cache-directive ...
它与Cache-Control的区别:Cache-Control是设置时间长度; Expires是设置时间点; Expires的一个缺点是它的时间是参照电脑本地时间的,如果本地时间错乱的话,那么缓存可能就会失效;所以如果既有Expires又有Cache-Control,那么就忽略掉Expires。 Last-Modified就是记录上次这个缓存文件修改的时间,下次请求的时候带上一个请求...
Expires 是以前用来控制缓存的http头,Cache-Control是新版的API。 现在首选Cache-Control。 如果在Cache-Control响应头设置了 "max-age" 或者 "s-max-age" 指令,那么 Expires 头会被忽略。 响应头设置方式: Expires: Wed, 21 Oct 2015 07:28:00 GMT Expires 响应头包含日期/时间, 即在此时候之后,响应过期。
此外Cache-Control和Expires这两个字段的区别是Cache-Control字段的选项要多一些,Cache-Control是HTTP1.1标准协议中出现并推荐使用的,Expires是HTTP1.0的规定,但是HTTP1.0并不是明确标准,不具备任何约束力。 HTTP 1.0 虽然明面上属于草稿纸协议,Expires看似也不推荐使用,但是后续的协议并没有废弃它,所以还是有一定的存在...
-1:指定“Expires”的值为当前服务器时间-1s,即永远过期。 off:不修改“Expires”和"Cache-Control"的值 expires使用了特定的时间,并且要求服务器和客户端的是中严格同步。 而Cache-Control是用max-age指令指定组件被缓存多久。 对于不支持http1.1的浏览器,还是需要expires来控制。所以最好能指定两个响应头。但HTTP...
ETag 是通过对比浏览器和服务器资源的特征值(如MD5)来决定是否要发送文件内容,如果一样就只发送 304(not modified) Expires 是设置过期时间(绝对时间),但是如果用户的本地时间错乱了,可能会有问题 CacheControl: max-age=3600 是设置过期时长(相对时间),跟本地时间无关。
Expires和Cache-Control: Expires: 这个字段是HTTP/1.0中的,Expires是需要在服务端配置(具体配置也根据服务器而定),Expires添加的是该资源过期的日期,浏览器会根据该过期日期与客户端时间对比,如果过期时间还没到,则会去缓存中读取该资源,如果已经到期了,则浏览器判断为该资源已经不新鲜要重新从服务端获取。通过这种...
不过Expires 有缺点,比如说,服务端和客户端的时间设置可能不同,这就会使缓存的失效可能并不能精确的按服务器的预期进行。 第二种是Cache-Control,比如: 代码语言:javascript 复制 Cache-Control:max-age=3600 这里声明的是一个相对的秒数,表示从现在起,3600秒内缓存都是有效的,这样就避免了服务端和客户端时间不...