cookie和session存在的意义
HTTP协议是一种无状态的协议,每次服务器接收到客户端的请求都是一次无状态的请求,服务器并不知道客户端的历史请求记录,因此请求速度较快,但也造成了服务器无法对客户端不同用户进行区分。所以,cookie和session存在的意义就是弥补HTTP的无状态特性。
什么是cookie
cookie存储在客户端,浏览器向服务器发起请求后,服务器会将set-cookie字段中的信息返回给浏览器,浏览器就会将信息保存到本地,下次浏览器向服务器请求时,会将cookie信息作为参数发给浏览器。通常,他用于判断两个请求是否来自于同一浏览器。
cookies的优缺点:
优点:不占用服务器资源,效率高。
缺点:不安全
什么是session
session基于cookie实现,存储于服务器端。SessionID存储在客户端cookie中,当浏览器再次向服务器端发起请求时,服务器从cookie中获取SessionID查找对应Session信息,从而判断该用户是否登录或具有某种权限。服务器端的Session对象存储结构为ConcurrentHashMap。
cookie和Session的区别
- cookie存储于客户端,Session存储于服务器
- cookie中数据不能超过4K,Session存储空间大于cookie
- cookie只能存储字符串,session可存储任意数据类型。cookie安全性比session低。我们可以轻松访问cookie值,但无法访问session值。
- Cookie是把用户的数据写给用户的浏览器。
- Session技术把用户的数据写到用户独占的session中。
- Session对象由服务器创建,开发人员可以调用request对象的getSession方法得到session对象。