HTTP协议是一种无状态的协议,WEB服务器本身不能识别出哪些请求是同一个浏览器发出的
浏览器的每一次请求都是完全独立的
即使HTTP1.1支持持续连接,但当用户有一段时间没有提交请求,连接也会关闭
作为web服务器,必须能够采用一种机制来唯一地标识一个用户,同时记录该用户的状态
WEB应用中的会话是指一个客户端浏览器与WEB服务器中间发生的一系列请求和响应过程
WEB应用状态的会话状态是指WEB服务器与浏览器在会话过程中产生的状态信息
借助会话状态,WEB服务器能够把属于同一会话中的一系列的请求和响应过程关联起来
在Servlet中,可以用两种机制完成会话跟踪
Cookie
Session
Cookie机制
Cookie机制采用的是客户端保持HTTP状态信息的方案
Cookie是在浏览器访问WEB服务器的某个资源时,由WEB服务器在HTTP响应消息头中附带传送给浏览器的一个小文本文件。
一旦浏览器保存了某个Cookie,那么它在以后每次访问该WEB服务器时,都会在HTTP请求时,将这个Cookie回传给WEB服务器
底层实现原理:
WEB服务器通过在HTTP响应消息中增加Set-Cookie响应头字段将Cookie信息发送给浏览器
浏览器则通过在HTTP请求消息中增加Cookie请求头字段将Cookie回传给WEB服务器
一个Cookie只能标识一种信息,他至少包含一个表示该信息的名称(Name)和设置值(Value)
浏览器一般只允许存放300个Cookie,每个站点最多存放20个Cookie,每个Cookie的大小限制为4kb
addCookie()设置Cookie
getCookies()获取Cookies
Cookie的发送
如果创建了一个Cookie,默认情况下它是一个会话级别的Cookie,存储在浏览器的内存中
用户推出浏览器之后被删除,若希望浏览器将该cookie存储在磁盘上,则需要使用setMaxAge,
并给出一个以秒为单位的时间。(如果设为0则是命令浏览器删除该Cookie)
Cookie的path
只作用于当前目录及其子目录