浏览器存储(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.上层失效,直接进行正常请求。

你可能感兴趣的:(浏览器存储(cookie,localstorage,sessionstorage)和缓存(catch-control))