Cookie与Session的原理和应用以及区别
Cookie与Session的原理和应用以及区别
一、cookie
1、Cookie原理:
2、Cookie应用:
3、Cookie语法:
二、session
1、Session原理:
2、Session应用:
3、Session语法:
三、cookie和session的区别
一、cookie
1、Cookie原理:
Cookie是一种会话链接技术,客户端请求服务器时,如果服务器需要记录该用户的信息,就使用response向客户端发送一个Cookie。但客户端会把Cookie保存起来。当浏览器再请求服务器时,浏览器把请求的网址连同该Cookie一同提交给服务器。Cookie是一键值对的形式保存在客户端服务器上,服务器通过检查该Cookie来获取用户信息。
2、Cookie应用:
我们在浏览器中,经常涉及到数据的交换,比如你登录邮箱,登录一个页面。我们经常会在此时设置15天内记住我或者自动登录选项。在用户第一次访问该网站的时候会弹出记住账户密码的提示框,点击提示框后在下一次登录网站的时候就不用再次输入账号密码。超市积分卡也是这样,同过保存用户信息,来保存每次购物的积分。
3、Cookie语法:
创建cookie对象
Cookie newCookie=new Cookie(“parameter”,”value”);
服务器向客户端添加cookie
response.addCookie(newCookie);
cookie最生命周期设置(秒为单位) cookie.setMaxAge(maxAge);
说明: 1、maxAge为Integer.MAX_VALUE//表示信息永远有效 2、maxAge为-1//表示信息关闭浏览器窗口及失效丢失 3、maxAge为0//表示信息即时删除
二、session
1、Session原理:
session是在cookie的技术上延伸的一种技术,当服务器向客户端发送cookie时,客户端服务器会将cookie保存在服务器,而session会根据cookie创建sessionid,也就是cookie的key值。服务器可以通过sessionid来获取session的保存的数据,从而来进行数据的处理。由于session的存在,不管哪一个服务器来请求,都可以拿到同一个session获取到数据。
2、Session应用:
我们的用户管理系统,必须要登录成功后才能跳转到主页面,而不能直接绕过登录页面直接到主页面。与cookie一样,也可以查看用户是否登录过该网站。验证码的实现。
3、Session语法:
获取session
HttpSession session = request.getSession();
将数据存在session上
session.setAttribute("key", "value");
获取sessionId
String sessionId = session.getId();
销毁session
session.invalidate();
三、cookie和session的区别
1、Cookie 是一种发送到客户端浏览器的文本,并保存在客户端浏览器上,可以在浏览器上保存数据。
2、Session其实是利用Cookie进行信息处理的,当用户首先进行了请求后,服务器就在客户端浏览器上创建了一个Cookie,当这个Session结束时,其实就是意味着这个Cookie就过期了。
3、cookie和session的共同点都是跟踪浏览器的会话技术,不同点是cookie数据保存在客户端,session数据保存在服务器端。
4、cookie和session都可以设置键值对,都可以保存用户的数据,但cookie将数据保存在客户端浏览器容易遭到黑客的入侵和攻击,安全系数不高,而且有的站点的内存有限,太多的cookie不足以保存在站点,从而导致网站崩溃。而session将数据保存在服务器上更安全,不容易丢失。