浏览器存储(cookie,localstorage,sessionstorage)和缓存(catch-control)

1.cookie,localstorage,sessionstorage

    cookie:服务器端生成,请求同意网站时就附加在请求头发送给服务器,所以大小有所限制,同域名cookie数大概50个。

    大小:4k;

    服务器发送——>浏览器保存——>下次请求夹带在请求头发送

     服务器发送:

          set-cookie : “name=value 数据键值对

                               domain:设置cookie生效的域,该域及子域都会收到cookie

                               path:和domain一起合作确定生效的域

                               expires/max-age:多久删除cookie,前者为时间戳,后者为秒数,同时设置后者优先级高,都没设置,浏览器关闭就删除,设置负数马上删除

                               HttpOnly:在document. cookie不可见,也不可设置

                                secure:指定后只有SSL连接才能发送到服务器

      Localstorage/sessionstorage:

      大小:5M

      不向浏览器发送;

      不同浏览器无法共享,同源不同页面可以共享localstorage,不能共享sessionstorage

      前者用于长期登录,后者用于一次登录,或购物

2.浏览器缓存:Progma、Expires、Cache-control

优先级:progma>cache-control>expires

    1.缓存开启


    2.缓存校验:

    http 1.1:

      Last-Modified:服务器返回,下次请求时可以在if-modified-since/if-unmodified-since字段中附带,服务器检查该时间与服务器最后修改时间是否一致,一致返回304.不一致返回200和正常资源后者返回412。

      Etag:针对修改时间改变,内容没变的情况,服务器对资源进行哈希运算,通过etag返回浏览器,下次浏览器请求时附带上if-none-match和if-match,返回码同if-modified-since/if-unmodified-since。

   3.浏览器请求资源与缓存:

    1.expires/cache-control:第一层,以绝对时间和相对时间校验资源,失效进行下一层

    2.last-modified/etag:第二层,浏览器与服务器通信,用两者校验资源是否更改

    3.上层失效,直接进行正常请求。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容