Session和cookie的作用

Session是在服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以保存在集群、数据库、文件中;
Cookie是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现Session的一种方式。
 
session和cookie的目的相同,都是为了克服http协议无状态的缺陷,但完成的方法不同
 
session通过cookie,在客户端保存session id,而将用户的其他会话消息保存在服务端的session对象中,与此相对的,cookie需要将所有信息都保存在客户端。因此cookie存在着一定的安全隐患,例如本地cookie中保存的用户名密码被破译,或cookie被其他网站收集。
 
由于HTTP协议是无状态的协议,所以服务端需要记录用户的状态时,就需要用某种机制来识具体的用户,这个机制就是Session.
session创建于服务器端,保存于服务器,维护于服务器端,  每创建一个新的Session,  服务器端都会分配一个唯一的ID,并且把这个ID保存到客户端的Cookie中,保存形式是以JSESSIONID来保存的。
 
服务端是如何识别特定的客户的?
这个时候Cookie就登场了。每次HTTP请求的时候,客户端都会发送相应的Cookie信息到服务端。实际上大多数的应用都是用 Cookie 来实现Session跟踪的,第一次创建Session的时候,服务端会在HTTP协议中告诉客户端,需要在 Cookie 里面记录一个Session ID,以后每次请求把这个会话ID发送到服务器,我就知道你是谁了。
原文地址:https://www.cnblogs.com/seamy/p/15648557.html