Web项目中,Session存放用户信息比Cookie更安全

一、会话技术

会话:指一次会话中包含多次请求和响应。

一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止(这个断开指浏览器关闭了、或者服务器关闭了)。

会话功能:在一次会话的范围内的多次请求间共享数据。

会话的两种方式:客户端会话技术Cookie 、服务器端会话技术Session。

1.1 Cookie

Cookie 是客户端会话技术,它将数据保存在客户端(如浏览器)。Cookie会话技术基于响应头 set-cookie 和请求头 cookie 实现。

快速入门
  1. 创建Cookie对象,绑定数据: new Cookie(String name, String value)
  2. 发送Cookie对象: response.addCookie(Cookie cookie)
  3. 获取Cookie,拿到数据: Cookie[] request.getCookies()
细节使用
问题 解决
可以一次发送多个cookie吗? 可以。
可以通过创建多个Cookie对象,使用response调用多次addCookie()方法发送cookie。
cookie能浏览器中保存多长时间? 默认情况下,当浏览器关闭后,cookie数据被销毁。
也可持久化存储,通过 setMaxAge(int expiry) 实现。
1. expiry为正数:将cookie数据写到硬盘的文件中,持久化存储,并指定cookie存活时间,时间到后,cookie文件自动失效;
2. expiry为负数:默认值;
3. expiry等于零:意味着删除该cookie键。
cookie能不能存放中文? 在Tomcat 8 之前(Tomcat 7 及以下版本)不能直接存储中文,需要将中文转码(URL编码存储,URL解码解析)。
Tomcat 8 之后,cookie支持中文数据,但不包括特殊字符。
cookie获取范围多大?
1. 假设在一个tomcat服务器中,部署了多个web项目,那么在这些web项目中cookie能不能共享?
2. 不同的tomcat服务器间能实现cookie共享吗?
1. 默认情况下cookie不能共享。但也可以手动设置 setPath("/")
2. 如果设置一级域名相同,那么多个服务器之间cookie可以共享 setDomain(String path)
Cookie的特点
  1. Cookie数据存储在客户端浏览器;
  2. 浏览器对于单个Cookie的大小有限制(4kb),且对同一个域名下的总Cookie数量也有限制(20个)。
Cookie的作用
  1. Cookie一般用于存储少量的不太敏感的数据;</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值