美文网首页
cookie、sessions、localstorage、ses

cookie、sessions、localstorage、ses

作者: 爱跳的兔子 | 来源:发表于2018-02-19 17:17 被阅读0次

    cookie 

    1. 服务器通过 Set-Cookie 响应头设置 Cookie

    response.setHeader('set-cookie','key:value')


    2.浏览器(前端)得到的响应头里的 cookie,之后每次请求都会带着cookie

    cookie:id;


    3. 服务器通过读取 Cookie 就知道登录用户的信息

    request.header.cookie  //  然后对比数据库验证用户信息

    由于直接使用cookie, 会很容易的被用户伪造cookie,所以引出sessison来解决这个问题

    cookie = new Cookie("cookiename","cookievalue");

    //设置Cookie最大生存时间,以秒为单位,负数的话为浏览器进程,关闭浏览器Cookie消失 

    cookie.setMaxAge(3600);

    //设置cookie过期时间为1个小时

    cookie.setPath("/");

    //设置路径,这个路径即该工程下都可以访问该cookie 如果不设置路径,那么只有设置该cookie路径及其子路径可以访问 

    response.addCookie(cookie);

    // 将Cookie添加到Response中,使之生效

    setCookie(name, "", -1);//删除一个cookie, 让 setCookie函数的第二个参数为空就会删除这个name coikie


    sessions

    1. 在服务器创建一个对象 

    sessions = []

    sessionsID  = Math.random*100000    //使用一个随机数当用户的sessionsID

    sessions[sessionsID] = 用户信息   //把这个ID放入后台临时数据库(sessions对象)中

    response.setHeader('set-cookie', sessionsID )


    2.浏览器(前端)得到的响应头里的 cookie,之后每次请求都会带着cookie

    cookie: sessionsID;


    3. 服务器通过读取 Cookie 就知道登录用户的信息

    request.header.cookie  //  然后对比数据库验证用户信息


    与直接使用cookie相比,用sessions随机数生成ID暴露给前端随机数,显得更加安全

    localstorage

    一个 Storage 可被用于访问当前远端( origin )的本地存储空间的对象.

    LocalStorage 跟 HTTP 无关,localstorage永久有效,除非用户清理缓存,每个域名 localStorage 最大存储量为 5Mb 左右,

    只有相同域名的页面才能互相读取 LocalStorage

    具体的集中使用方法

    localStorage.setItem('myCat', 'Tom'); //设置,为本地storage对象添加一个key,value.

    var cat = localStorage.getItem("myCat");//读取localstorage对象的“ myCat ”的 value

    localStorage.removeItem("myCat");//移除一个key及value


    sessionstorage

    localstorage相同,唯一不同点是SessionStorage 在用户关闭页面(会话结束)后就失效。


    Cache-Control

    通过设置Cache-Control时间,让相同的url时浏览器会在这个时间内,阻断请求,利用缓存加载,达到性能优化目的。

    //后端设置响应头

    response.setHeader('Cache-Control','maxage-600')   // 相同的url 600S内不请求


    Expires

     与Cache-Control功能一样,不同点是Cache-Control是设置多长时间后过期。Expires是直接设置一个过期的日期,格式为GMT


    MD5

    Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数.


    ETag

    //后端设置响应头

    response.setHeader('ETag',md5) 

    //客户端收到响应头

    //会有ETag:  '当前文件MD5'

    //同一个文件客户端下一次请求时会带上

    IF-None-Math:"当前文件MD5"

    //后端收到请求会进行对比MD5,如果相同代表不需要更新。


    Cache-Control, Expires ,ETag的区别

    Cache-Control, Expires是通过设置时间让浏览器阻断请求,ETag是没有阻断请求,是后端验证MD5是否改变来做出相应的响应。

    相关文章

      网友评论

          本文标题:cookie、sessions、localstorage、ses

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