对于很多学习开发的学生来说,Cookie与Session是学习的一大难题,今天我们通过这篇文章给大家详细介绍Cookie与Session的使用。
1、会话与会话技术
首先我们要理解什么是会话,在生活中,从接通电话到挂断电话中间的谈话过程就是一次会话。在Web应用中,一个客户端浏览器与服务器之间连续发生的一系列请求和响应就是一次会话,比如一个用户在电商网站上购物的整个过程就是一次会话。
为了保存会话过程中的重要数据,我们可以使用Session或Cookie这两个对象。
2、Cookie
描述:cookie是一种会话技术。将会话过程数据存储在浏览器中。
原理:第一次访问服务器,浏览器不携带Cookie,服务器会在响应消息头中增加set-Cookie字段,浏览器接收之后,保存在自身的缓冲区,后续再访问时都会携带Cookie,从而使服务器能够分辨当前请求是哪个用户发出。
重要方法:
cookie.setMaxAge(60*30);//设置cookie的生存期30分;设置负整数,浏览器关闭失效,设置0立即删除cookie信息。
cookie.setPath(“/test”);//设置cookie的路径。
3、Session
描述:session将用户数据保存到服务器。
原理:session在用户第一次访问服务器时被创建,session是基于Cookie的一种技术、服务器创建每个session的时候,会为每个session分配一个ID号,即JSESSIONID,服务器会以cookie的方式把session的id号写给浏览器。当浏览器再次访问的时候,会带着有sessionid号的cookie过来,这就是session实现共享的原理。服务器写这个cookie的时候,是没有写有效期的,所以当浏览器关闭的时候,cookie也就没了,session也就结束了,即会话过程。如果想要设置有效期,可以通过cookie.setMaxAge()设置。
重要方法:
Cookiecookie=newCookie("JSESSIONID",session.getId());
cookie.setMaxAge(60*30);
注意:如果不想让浏览器关闭session失效,需要设置存放sessionid的cookie的生存期。
纸上得来终觉浅,绝知此事要躬行。每天进步一点点,加油!