浏览器的存储方式
我之前有发过seeion,cookie,localStorage,sessionStorage的文章,js中session,cookie,sessionStorage以及localStorage的用法还有区别_刘依铭的博客-CSDN博客接下来主要是想说一个小问题。
问:第一次登录某个网站选择保存账号密码,第二次登录的时候服务端如何判断用户信息?或者简单说就是服务端怎么知道我是谁的?通过什么方式?
第一次登录的时候通过账号密码会在服务端生成一个seeionID,通过setCookie的方式存在Cookie上,第二次发送相同请求的时候,cookie会保存seeionID,服务端通过解析SeeionID找到当前用户是谁,如果有的话就是直接使用seeionID,如果没有的话就是通过跳转到302到登录页面
浏览器的缓存机制
问:第一次请求页面会显示200.第二次如果命中了缓存机制的话会直接使用缓存中的数据,会减少一个请求时间,请问这个缓存机制有没有一个大概的了解?
首先我们要知道浏览器缓存的目的是为了减少请求的体积以及数量,从家加快加载页面的速度。
强制缓存(cache-control):当浏览器像服务器第一次发送请求的时候,如果服务器觉得是值得被缓存下来的,类似于css文件,就设置cache-control值为一个max-age,其实有点类似于过期时间,当之后浏览器再次访问相同网站时候,服务器的时候,如果还没有到max-age这个时间就可以直接在本地缓存拿到数据,从而速度就会变快。
协商缓存(对比缓存):服务端缓存策略
主要过程是这样的:第一次发送请求的时候,服务端会给浏览器一个200状态码以及资源标识(上次修改时间或者是唯一字符串),并且把资源以及标识存入本地缓存中。当后续再有请求的时候,浏览器会一起发送请求和资源标识,这个时候服务器会和本地缓存做一个对比,如果是相同版本,即本地缓存里面已经是最新资源,那服务器返回一个304状态码,直接从缓存里拿资源;如果不是最新资源,服务器返回200状态码,最新资源以及资源标识。
对比缓存的速度肯定比强制缓存要慢,因为需要服务器和本地缓存进行对比
浏览器缓存的总结
主要过程如下: