美文网首页饥人谷技术博客
简单聊聊Cookie 和 Session #前端#

简单聊聊Cookie 和 Session #前端#

作者: _刘小c | 来源:发表于2017-06-20 16:11 被阅读0次

    Cookie##

    Cookie就是由服务器发给客户端的特殊信息,一般用于识别不同的用户或标记一些简单的信息。

    这些信息将存放在客户端,客户端每次向服务器发送请求的时候都会带上这些特殊的信息,进而识别。

    使用

    服务器设置响应cookies

    在前端领域,为了简单的认识和使用Cookie,一般用到的是一个cookies的包,首先我们需要安装他。

    npm i cookies
    

    当客户端访问我们的服务器时,我们用nodejs在后台通过cookies.set('name','information')给客户端响应一个Cookie。

    以后的所有客户端发出的相同域名下的所有的请求都会带上cookies,回传给我的服务器。

    客户端获取cookies

    cookies.get可以获取回传回来的cookies

     var getting = browser.cookies.get({
        url: url,
        name: "xxx"
      });
    

    其中url为回传cookie的相关联路径,name为回传cookie的名称

    cookies的过期时间

    cookies的过期时间一般为一个session,即浏览器关闭后,cookies自动清空。各个浏览器之间有略微的不同,有些浏览器会在关闭后保留一小段时间后再删除cookie

    cookies的储存形式

    每个浏览器有自己的cookie储存形式,是无法跨浏览器使用的,但是在当前浏览器新开一个TAB分页是可以共享cookie的

    另外,浏览器隐身模式下,无浏览历史记录,cookie存储区也不会留下任何痕迹

    cookie的缺陷

    • cookie存放在客户端,虽然可以有效减轻服务器负载,但也容易被客户端利用进行cookie欺骗

    • cookie大小下限是4K,但考虑到每次客户端请求和被响应都要带着cookie,浏览器一般也限定上限是4k,一般无法存储大量数据


    Session##

    Session是另一种记录用户状态的方法,不同的是Cookie保存在端浏览器中,而Session保存在服务器上。从某一角度上来说,session的出现,就是为了有效补足cookie的缺陷

    原理和作用

    在服务器端创建session对象,将用户的关键信息写入对象,形成用户档案,用户来访的时候可以通过查询用户档案,返回数据。

    可以用唯一的ID来管理用户,一定程度上防止客户端的cookie欺骗。

    用其他属性来标记特殊属性,不受cookie的大小限制,在需要时返回,不会因往返无用数据量太大而造成网络堵塞。

    session的缺陷

    session会在一定时间内保存在服务器上。当访问增多,会比较占用服务器性能,服务器的负载加大


    总结

    一般来说,http请求和响应,会同时用上cookie和session,cookie用于简单的数据传输,但是为了不加大网络之间的数据传输量,处于安全和数据复杂度考虑,也会同时用到session。

    相关文章

      网友评论

        本文标题:简单聊聊Cookie 和 Session #前端#

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