B/S会话管理
http基于TCP之上,但是http是无状态的,用户的两次请求不会有任何关联,但是往往实际开发过程中,需要记住用户的登陆状态、上次操作。这时候需要做会话管理。
B/S架构主要的会话管理方式有隐藏域、Cookie、Session管理。
隐藏域
- 该方法基本已经被弃用。
- 由浏览器在每次请求时,主动告诉服务器多次请求间的必要信息
如登陆:
每次浏览器都需要携带帐户、登陆状态请求数据
浏览器接收请求仍需要返回所有下次需要的数据,以便下次请求继续携带
使用Cookie
- Cookie是在浏览器端存储信息的一种方式。
- 由服务器端将需要保存给客户端的数据放入Cookie,并通过HttpServletResponse响应给浏览器
- 默认的Cookie存活时间是关闭浏览器之前,可以通过setMaxAge的设置
- 浏览器再次连接服务器是,浏览器会把有效期内的cookie信息,利用cookie表头自动将Cookie发送给浏览器
Cookie使用场景:下次自动登陆
// 服务端设置Cookie
Cookie cookie = new Cookie("username",username);
cookie.setMaxAge(7*24*60*60);//设置有效时间,单位s,缺省-1,即关闭浏览器cookie失效
cookie.setHttpOnly(true);是否只能在服务端操作cookie,而客户端javascript不能。不是cookie规范,而是浏览器支持
resp.addCookie(cooki