1. cookie 基础
- 1. 会话技术(共享数据)
-
(一次请求 ,一次响应,是一次连接)
-
(多次连接 是会话,包括多次请求和响应)
-
http是无状态的,无法多次请求会话,引入cookie
- 2. 共享数据方式:
-
> 存储在服务器 server 的是 Session
-
> 存储在客户端 client 的是 Cookie
- 3. Cookie 是一门会话技术, 数据保存在客户端(浏览器)的会话技术
-
> cookie数据封装在请求头里,和新数据一起向服务器发送请求
-
> 使用步骤:
-
> 1. 创建cookie对象
-
> 2. 通过响应发送cookie对象
-
> 3. 拿到cookie数据
- 4. cookie原理
-
> 执行过程图:
-
>再次请求携带cookie信息,到请求头里, 通过浏览器抓包工具可以查看
- 5. cookie 细节
-
1.能否一次发送多个cookie?
-
(可以,可创建多个cookie,使用response调用多次addCookie方法发送cookie即可)
-
2.cookie 在浏览器中保存多久?
-
1.(默认,当浏览器关闭,cookie数据被销毁)
-
2.持久化存储: cookie对象的 setMaxAge(in seconds)方法
-
> 2.1 正数: in seconds 退换成 正数数字, 如 30 ,代表30秒
-
> 2.2 负数: 默认值(关闭浏览器,cookie清零)
-
> 2.3 零: 删除cookie信息
-
> 2.4 常用: setMaxAge(60*60*24*15) 半个月 不要超过一个月
-
3. cookie 能不能存中文?
-
> 3.1 Tomcat8 以前不可以直接存中文, 需要解码,转码
-
> 3.2 Tomcat8 以后是可以的
-
> 4. cookie 共享问题
-
> 4.1 在相同服务器下(同一个项目下可以,不同项目默认不可以)
-
> 4.2 如果想共享数据,需要给共享的cookie对象设置 setPath("/")
-
> setPath(路径): 设置cookie得到共享范围, 默认情况下设置为当前虚拟目录'/'
-
> 4.3 不同的Tomcat服务器间的cookie共享数据?
-
> tieba.baidu.com 和 news.baidu.com (baidu.com为一级域名)
-
> setDomain(String path) : 如果设置一级域名相同, 那么多个服务器之间的cookie可以共享
-
> 5. cookie的特点和作用
-
> 5.1 cookie存储数据在客户端浏览器
-
> 数据存储在服务器端,安全级别高, 数据cookie存储在浏览器端安全等级低,容易被篡改,访问速度高
-
> 5.2 浏览器对于单个cookie的大小有限制(4kb) ,对同域名下,cookie数量也有限制(20个)