Cookie:
① Cookie是由服务器发给客户端的特殊信息,以文本的方式存放在客户端。也就是说,用户在浏览器上传自己的个人信息并提交至服务器的时候,服务器再向客户端发送信息的时候会回传这些信息(这些信息目前存放在HTTP响应头和ResponseHeader中),当用户接收到来自服务器的响应后,浏览器会将这些信息存放在一个统一的位置。
② 客户端再次请求的时候,会把Cookie再次发回至服务器(这时Cookie信息存放在HTTP请求头中)。
③ 服务器接收到后,会解析Cookie,并生成与客户端相对应的内容。
④ 实现方式:
Session:
① Session机制是一种服务器端的机制,服务器用一种类似xx表的结构保存信息。
② 当程序需要为某个客户端的请求创建一个Session的时候,服务器首先检查这个客户端里是否已经包含了一个session标识(称为sessionId),如果已包含,则说明已经为此客户端创建过Session,服务器就根据sessionId把Session检索出来使用,如果不包含,就为这个客户端创建一个Session,并且生成一个与此Session相关的sessionId(sessionId的值是一个不会重复又不容易找到规律的一个字符串),这个sessionId会在本次响应中发给客户端进行保存。
③ 实现方式:
a)使用Cookie实现:在Cookie头中携带sessionId
b) 使用URL回写来实现:服务器在发送给浏览器页面的所有链接中都携带JSESSIONID参数,这样客户端点击任何一个链接,都会把sessionId带回服务器。
区别
① Cookie数据存放在客户的浏览器上,Session数据存放在服务器上。
② Session相对于Cookie更安全。
③ Session会在一段时间内保存在服务器上,比较多的时候会影响服务器的性能,若考虑减轻服务器负担,应当使用Cookie。