1 Cookie简介
在网站中,http请求是无状态的。也就是说第一次和服务器连接后并登录成功后,第二次请求服务器仍然不知道是哪个用户。可以使用Cookie来解决这个问题。
第一次登录后服务器会返回一些特殊的信息(Cookie)给浏览器,然后浏览器保存在本地,该用户发送第二次请求的时候,就会自动把上次请求存储的Cookie数据自动放在http报文头中携带给服务器。服务器通过浏览器携带的数据,就能判断当前用户是哪个了。
Cookie的设置以及发送过程:
服务器在响应消息中用Set-cookie将cookie内容回送给客户端,客户端在新的请求中将相同的内容携带在报文头中,从而实现回话保持。
2 session简介
服务器端的机制,在服务器上保存的信息;解析客户端请求并操作session id,按序保存状态信息
Session的实现方式:
1)使用cookie来实现:
服务器给每个session分配一个唯一的JSESSIONID,并通过cookie方式发送到客户端。当客户端发送新的请求时,会将JSESSIONID作为cookie信息带到服务器
2)使用URL来实现:
- 先判断当前的web组件是否启用session,如果没有启动session,直接返回参数url
- 再判断客户端浏览器是否支持cookie,如果支持cookie,直接返回url,如果不支持,就在url中加入sessionID,然后返回修改后的url
3 Cookie和Session的区别
- Cookie数据存放在客户端浏览器上,Session数据存在在服务器中。
- Session相对于Cookie更加安全
- 若考虑减轻服务器的负担,应该使用Cookie