Cookie简介
-
是由服务器发给客户端的特殊信息,以文本的形式存放在客户端
-
客户端再次请求的时候,会把Cookie回发
-
服务器接收到后,会解析Cookie生成与客户端相对应的内容
Session简介
-
服务端的机制,在服务器上保存的信息
-
解析客户端请求并操作session id,按需保存状态信息
Session的实现方式
-
使用cookie实现。服务器给每个session分配一个唯一的jsessionid,并通过cookie发送给客户端。当客户端发起新的请求的时候,将在cookie头中携带这个jsessionid,这样服务器能找到客户端对应的session。
-
使用URL回写来实现。URL回写是指服务器在发送给浏览器页面的所有链接中都携带jsessionid的参数,这样客户端点击任何一个链接,都会把jsessionid带回服务器。如果直接在浏览器输入服务端资源的URL来请求该资源,那么session是匹配不到的。tomcat对session的实现是一开始同时使用cookie和url回写机制。如果发现客户端支持cookie,就继续使用cookie,停止使用url回写。如果cookie被禁止就使用url回写。
-
区别
-
Cookie数据存放在客户的浏览器上(客户端),Session数据存放在服务器上。
-
Session相对于Cookie更安全。别人可以分析存放在本地的Cookie,并进行Cookie欺骗。若考虑到安全性应使用Session
-
若考虑到减轻服务器负担,应当使用Cookie。