Cookie和session都是跟踪浏览器用户身份的会话方式
Cookie数据保存在客户端,保存数据不安全且存储数据量有限;session数据保存在服务器端,保存数据安全且存储数量大,session基于cookie进行存储。
Cookie实际上是一小段的文本信息。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器会把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。
Session创建时,服务器会为该Session生成唯一的Session id。在Session被创建之后,就可以调用Session相关的方法(.getSession(key,walue))往Session中增加内容了,而这些内容只会保存在服务器中,发到客户端的只有Session id;当客户端再次发送请求的时候,会将这个Session id带上,服务器接受到请求之后就会依据Session id找到相应的Session,从而再次使用。这样,用户的状态就得以保持了。
一般情况下,服务器会在一定时间内(默认30分钟)保存这个 Session,过了时间限制,就会销毁这个Session。