Cookie
cookie是客户端用于存储相关数据的文本文档,它保存在客户端浏览器上,由于cookie在浏览器可以看到,所以比较不安全,而且能存储的数据量较小,它常用于存储一些安全性要求不高的信息。
Session
session中的数据都保存在服务器上,所以相对来说比较安全,而且存储数据量也比较多,但是当session请求过多时,对系统的压力也是很大的,session用于存储一些安全性要求较高的信息。session的唯一识别是sessionID,它存储于cookie中。 Tomcat中,session的生命默认为30分钟。
指的是客户端第一次请求,是哪一个服务器进行接收并处理的,以后这个客户端发送的请求都由这个服务器来处理。相当于将session绑定到这个服务器上。可以使用Ngnix中的ip-hash策略来实现。
不足:
如果这个服务器坏了,然后这个客户端的请求重新转移到另一个服务器上,它的session信息都失效了。
指的是在同一个局域网里面通过广播的形式来同步session到每一个服务器上。
不足:
如果服务器过多,同步session的并发量就越多,而且随着用户的增多,服务器中session的存储量会过大,导致给系统带来过大的压力和内存不足。
构建一个redis集群,一个主redis和多个副redis集群(副redis集群之间是同步的)。 客户端第一次发送请求到服务器A,创建session后同步到redis集群中,客户端重新发送请求,由于负载均衡的作用,这次请求发送到了服务器B,这时服务器B就通过主redis去从redis中查找这个session之后返回。 读写都发生在redis中。