饥人谷技术博客

简单聊聊Cookie 和 Session #前端#

2017-06-20  本文已影响0人  _刘小c

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的缺陷


Session##

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

原理和作用

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

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

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

session的缺陷

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


总结

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

上一篇下一篇

猜你喜欢

热点阅读