美文网首页
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