今天看了下我们项目的代码,其中在用户登录后,如何保存cookie的,做了下调研,同时我们也用了localStorage技术,避免频繁与服务器的交互,保存浏览器本地的数据。
以下是摘自网上的文章,是一些概念,具体的实现,可以看我最下面的代码。
一.Cookies 与 Session的区别及使用
HTTP是一种无状态的协议,不知道链接是谁发起的,所以需要浏览器把登录信息存起来,Session和Cookie就是为解决这个问题而提出来的两个机制。
1.Cookie是服务器在本地机器上存储的小段文本,并随每一个请求发送至同一服务器,是在客户端保持状态的方案。有时也用Cookies,指某些网站为了辨别用户身份,进行session跟踪而存储在本地终端上的数据,通常经过加密。一般应用最典型的案列就是判断注册用户是否已经登过该网站。Cookie的主要内容包括:名字,值,过期时间,路径和域。
过期时间如不设,则浏览器关掉就消失,存储在内存当中;否则就按设置的时间来存储在硬盘上的,过期后自动清除。
路径和域就是对应的域名,a网站的cookie自然不能给b用。
2.Session存储在服务端,每建立一个连接就会生成一个Session ID,并将其通过响应发送到浏览器。浏览器把Session ID存在Cookie中,浏览器第二次发送请求会将前一次服务器响应中的Session ID放在请求中一并发送到服务器上,服务器从请求中提取出Session ID,并和保存的所有Session ID进行对比,找到对应的存放用户数据的类HashTable结构。
当用户在应用程序的 Web页间跳转时,存储在 Session 对象中的变量不会丢失而是在整个用户会话中一直存在下去。
一般这个值会有个时间限制,超时后毁掉这个值,默认30分钟。
Cookie与Session的区别
存储数据量方面:Session 能够存储任意的 java 对象,SCookie 只能存储 String 类型的对象
Cookie 在客户端,Session在服务端。因Cookie在客户端所以可以编辑伪造,不是十分安全。
Session过多时会消耗服务器资源,大型网站会有专门Session服务器,Cookie存在客户端没问题。
域的支持范围不一样&