Cookie
什么是Cookie?
- 在session的实现原理中,每一个session对象都会关联一个sessionId
- JSESSIONID=ADA72403E73D3C0F2541BBE159E9C65B
- 以上这个键值对数据就是Cookie对象
- 对于session关联的cookie对象来说。这个cookie是被保存在浏览器“运行内存“中的
- 只要浏览器不关闭,用户再次发送请求会自动将这个Cookie对象发送给服务器
- 服务器就根据JSESSIONID=ADA72403E73D3C0F2541BBE159E9C65B这个值来找到对应的session对象
Cookie存储在什么地方?
- cookie最终是保存在浏览器客户端上:既可以保存在运行内存中,也可以保存在硬盘文件上。
- 保存在运行内存中,浏览器关闭就消失了
- 保存在硬盘上,永久保存。
Cookie的作用?
- cookie和session一样其实都是为了:保存会话状态
- cookie对象存储在浏览器客户端上
- session对象存储在服务器上
为什么要有cookie和session?
- 因为http协议是无状态协议,需要会话状态来保持服务器和客户端的交互
- cookie和session机制都不属于”java“机制,而是属于http协议的规范。
cookie的组成?
- 在http协议中任何一个cookie都是由name和value组成的。其中name和value都是字符串类型
- http协议也同样规定:当浏览器发送请求的时候,会自动携带该path下的cookie数据给服务器
在java的servlet中对cookie提供了哪些支持?
- 提供了一个Cookie类来专门表示cookie数据。
- java程序怎么把cookie数据发送给浏览器?response.addCookie(cookie);
- cookie.setMaxAge()
- 不设置有效时间的话默认是保存在浏览器的”运行内存“之中
- 只要设置的有效时间>0这个cookie就会存储在硬盘文件中
- 设置=0则会默认删除,主要是应用于删除浏览器中的同名cookie
- 设置<0则不会存储该cookie在硬盘文件中,会保存在”运行内存“中,和不设置是同样的效果
cookie关联路径
- 在不设置的情况下,cookie默认关联的路径是 :父路径/*
- 手动设置路径:cookie.setPath();