美文网首页
Cookie和Session

Cookie和Session

作者: 扶光_ | 来源:发表于2023-10-30 09:18 被阅读0次

一,cookie

客户端的会话技术,将数据保存在客户端,以后每次请求都携带cookie数据进行访问。
会话建立,直到一方断开连接,会话结束,在一次会话中可以包含多次请求和响应
使用
1.发送cookie

Cookie cookie = new Cookie("key","value");
//使用response发送到客户端
response.addCookie(cookie);

2.获取cookie

//使用request对象获取cookie
Cookie[] cookies = request.getCookies();
//遍历数组
cookie.getName();
cookie.getValue();

1.1 cookie原理

cookie实现是基于http协议的


原理

1.2 cookie存活时间

存储到浏览器内存中,浏览器关闭内存释放
如我们登陆QQ密码有记住密码,那么下次我们登陆页面就不需要用再输入一遍账号密码,但过了1个月没有登录,发现我们还得重新输入账号密码,那就是设置cookie过期时间来完成的.

cookie.setMaxAge(60*60*24);//单位秒 设置一天 
//设置负数和0是销毁cookie

1.3 cookie设置中文

默认不支持中文字符集
进行URL转码来存储中文
如张三

String value = "张三";
value = URLEncoder.encode(name,"UTF-8");
Cookie cookie = new Cookie("user",value);

//获取的时候需要解码
value = URLDecoder.decode(value,"UTF-8");

二,Session

服务端会话跟踪,数据存储到服务端,安全
JAVAEE提供HTTPSession接口,一次会话多次请求间的数据共享

HttpSession session = request.getSession();
 setAttribute(name,value);//存储数据到session中
setAttribute(name);//根据key获取值
removeAttribute(name);//根据键删除键值对
### 2.1 session原理
是基于cookie来实现的
服务器重启后,session数据也存在
Session的销毁,默认情况下无操作30分钟自动销毁
<session-cpnfig>
 <session*timeout>30</session-timeout>//30分钟自动销毁
</session-cpnfig>

手动标签销毁
session.invalidate();//直接销毁
### 2.3 cookie和session区别
存储位置 cookie存储客户端,session存储服务端
安全性 cookie不安全,session安全
存储大小 cookie只能存储3kb session无限制
存储时间,cookie可以长期存储,session默认30min
服务器性能 cookie不占服务器资源,session占用

### 设置验证码的作用
防止机器自动注册,攻击服务器

相关文章

网友评论

      本文标题:Cookie和Session

      本文链接:https://www.haomeiwen.com/subject/ytuvidtx.html