美文网首页
Cookie与Session

Cookie与Session

作者: fyzm | 来源:发表于2018-12-02 21:37 被阅读0次

    Cookie

    1.服务器通过Set-Cookie给客户端一串字符串
    2.客户端每次访问相同域名的网页时,必须带上这段字符串
    3.客户端要在一段时间内保存这个Cookie

    如何设置Cookie时间和删除时间

    服务器端设置 Cookie 过期时间:response.setHeader('Set-Cookie','cookie-name=cookie-value;Max-Age=1000')
    服务器端删除 Cookie:Set-Cookie: token=deleted; path=/; expires=Thu, 01 Jan 1970 00:00:00 GMT
    用户端删除 Cookie :在浏览器的开发者工具(F12) -> Application -> Cookies 里删除某个网站的 Cookie。
    在浏览器(Chrome)的设置 -> 清除浏览数据 -> 勾选 Cookie 和其他网站数据 清除 Cookie

    <script type="text/javascript">
            //cname 名字
            //cvalue 值
            //exdays 时间            0.01大概25分钟
            function setCookie(cname, cvalue, exdays) {
                var d = new Date();
                d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
                var expires = "expires=" + d.toUTCString();
             document.cookie = cname + "=" + cvalue + "; " + expires+"; path=/"   这个很重要代表在那个层级下可以访问cookie
                console.log(d)
            }
    
        
    
            //获取cookie
            function getCookie(cname) {
                var name = cname + "=";
                var ca = document.cookie.split(';');
                for(var i = 0; i < ca.length; i++) {
                    var c = ca[i];
                    while(c.charAt(0) == ' ') c = c.substring(1);
                    if(c.indexOf(name) != -1) return c.substring(name.length, c.length);
                }
                return "";
            }
    
            //删除 cookie
            function clearCookie(name) {
                setCookie(name, "", -1);
            }
            
        </script>
    

    Session

    1.将SessionID(随机数)通过Cookie发送给客户端
    2.客户端访问服务器时,服务器读取SessionID
    3.服务器有一块内存(哈希表)保存了所有session
    4.通过SessionID我们可以得到对应用户隐私信息,如id,email
    5.这块内存(哈希表)就是服务器上的所有session

    LocalStorage:(实质是哈希)

    1.LocalStorage跟HTTP无关
    2.HTTP不会带上LocalStorage的值
    3.只有相同域名时的页面才能相互读取LocalStorage(没有同源那么严格)
    4.每个域名localStorage最大存储量为5Mb左右(每个浏览器不一样)
    5.常用场景:记录有没有提示过用户(没有用的信息,不能记录密码)
    6.LocalStorage永久有效,除非用户清理缓存

    SessionStorage

    1,2,3,4同上
    5.SessionStorage在用户关闭页面(Session结束)后就失效


    image.png

    HTTP缓存:Cache-Control:Web性能优化
    如何进行web性能优化:在相应的向服务器请求的文件设置其头部为response.setHeader('Cache-Control','max-age = 30')
    首页为啥无法设置缓存
    Expires和Cache-Control的区别:
    Expires设置的本地时间日期,Cache-Controlz设置的是时间的长久就过期。

    ETag会请求,但不响应。

    相关文章

      网友评论

          本文标题:Cookie与Session

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