Cookie和Session

本文详细介绍了Cookie和Session在Web开发中的使用。Cookie存储在客户端,支持字符串类型数据,容量有限,但默认可跨域;Session存储在服务器端,能存储任意类型数据,容量相对较大,但关闭浏览器会话即销毁。Cookie可通过setMaxAge设置存活时间,而Session依赖服务器维持,可通过invalidate()方法销毁。理解两者差异对于优化网站性能和用户隐私保护至关重要。
摘要由CSDN通过智能技术生成
sessioncookie
存储位置服务器客户端
数据类型

session.setAttribute(String,Object)

支持任意类型的数据

new Cookie(String,String)

仅支持字符串类型数据

容量上限只要JVM无限大,理论上无上限

总条数:每个域名下50条(取决于浏览器)

容量上限:4KB,中文4字节,英文2字节

Cookie生命周期:

        创建:

request.getSession();
//在服务器开辟一块全新的会话空间。构成(key:uuid   value:存储空间  过期时间:倒计时)

//在返回响应时,向客户端写入Cookie。由客户端负责存储,并在下次请求时携带到请求头发送到服务器。
Cookie cookie = new Cookie("JSESSIONID1",session.getId());
//设置cookie的项目名
cookie.setPath(request.getContextPath());
//设置cookie信息可读性
cookie.setHttpOnly(true);
response.addCookie(cookie);

        销毁:

        1、关闭浏览器时立即销毁(默认 浏览会话结束时)

                为了保障用户信息安全,关闭浏览器直接销毁。

        2、客户端清理cookie缓存内容

                尽量不要在公共网络中保存cookie,防止信息泄露

        3、配置cookie存活时间                

Cookie cookie = new Cookie("name","admin");
//设置存活时间由浏览器到期后删除,单位为秒
cookie.setMaxAge(60*60*24*7);
response.addCookie(cookie);

//浏览会话期间,关闭浏览器自动销毁
cookie.setMaxAge(-1);

//立即销毁
cookie.setMaxAge(0);

//到达指定时间后销毁
cookie.setMaxAge(>0);

        Cookie默认不支持跨域,如由 *.com   —>   *.cn

        cookie.setDomain("一级域名");允许二级域名访问一级域名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值