1.缓存

作者: 饥人谷_刘康 | 来源:发表于2020-07-06 12:22 被阅读0次

1. 什么是缓存?

浏览器缓存(Brower Caching)是浏览器对之前请求过的文件进行缓存,以便下一次访问时重复使用,节省带宽,提高访问速度,降低服务器压力。
http缓存机制主要在http响应头中设定,响应头中相关字段为Expires(过期时间)、Cache-Control、Last-Modified、Etag。

2. 缓存的类别

强缓存

浏览器不会像服务器发送任何请求,直接从本地缓存中读取文件并返回Status Code: 200 OK,优先访问memory cache,其次是disk cache,最后是请求网络资源

协商缓存

向服务器发送请求,服务器会根据这个请求的request header的一些参数来判断是否命中协商缓存,如果命中,则返回304状态码并带上新的response header通知浏览器从缓存中读取资源;

3.强缓存和协商缓存的header参数

Expires:过期时间,如果设置了时间,则浏览器会在设置的时间内直接读取缓存,不再请求
Cache-Control:当值设为max-age=300时,则代表在这个请求正确返回时间(浏览器也会记录下来)的5分钟内再次加载资源,就会命中强缓存。
cache-control常用值
(1) max-age:用来设置资源(representations)可以被缓存多长时间,单位为秒;
(2) s-maxage:和max-age是一样的,不过它只针对代理服务器缓存而言;
(3)public:指示响应可被任何缓存区缓存;
(4)private:只能针对个人用户,而不能被代理服务器缓存;
(5)no-cache:强制客户端直接向服务器发送请求,也就是说每次请求都必须向服务器发送。服务器接收到 请求,然后判断资源是否变更,是则返回新内容,否则返回304,未变更。这个很容易让人产生误解,使人误 以为是响应不被缓存。实际上Cache-Control: no-cache是会被缓存的,只不过每次在向客户端(浏览器)提供响应数据时,缓存都要向服务器评估缓存响应的有效性。
(6)no-store:禁止一切缓存(这个才是响应不被缓存的意思)。

相关文章

  • 1.缓存

    1. 什么是缓存? 浏览器缓存(Brower Caching)是浏览器对之前请求过的文件进行缓存,以便下一次访问时...

  • 1. 缓存

    为什么要用缓存? 用缓存,主要有两个用途:高性能、高并发。 用了缓存之后会有什么不良后果? 常见的缓存问题有以下几...

  • 安卓清除缓存

    1.获得缓存 2.清除缓存 3.缓存类

  • 安卓清除缓存

    1.获得缓存 2.清除缓存 3.缓存类

  • 2018-12-20 页面优化技术-页面缓存、URL缓存

    1.页面缓存+URL缓存 页面缓存 与URL缓存 区别: URL缓存是指当进行redis缓存时,在页面缓存基...

  • 第五章 光照

    光照强度 1.光的衰减: 2.雾 缓存 1.双缓存技术:缓存a,缓存b,对渲染结果和正在渲染,交换使用2.深度缓存...

  • [笔记] Swift清除缓存

    1.获取缓存大小 2.清除缓存 另附SDWebImage清除缓存

  • nginx缓存启用和禁用

    1.启用缓存 2.禁用缓存

  • MyBatis之缓存

    九、缓存 目录:缓存简介、MyBatis缓存、一级缓存、二级缓存、自定义缓存-Encache 1.缓存简介 查询连...

  • YYCache 源码学习总结

    YYCache 内存分为内存缓存和磁盘缓存 内存缓存 1.内存缓存实现通过CFMutableDictionaryR...

网友评论

      本文标题:1.缓存

      本文链接:https://www.haomeiwen.com/subject/nltaahtx.html