会话技术基础学习
Posted kmchen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了会话技术基础学习相关的知识,希望对你有一定的参考价值。
会话技术
- 会话:一次会话中包含多次请求和响应
- 一次会话:浏览器第一次给服务器资源发送请求,会话建立。直到一方断开为止
- 功能:在一次会话的范围内多次请求间,共享数据
- 方式:
- 客户端会话技术:Cookie,数据存放在客户端
- 服务器端会话技术:Session,数据存放在服务器
Cookie
- 概念:客户端会话技术,将数据保存到客户端
- 快速入门:
-
使用步骤:
- 创建Cookie对象,绑定数据
- new Cookie(String name,String value)
- 发送Cookie对象
- response.addCookie(Cookie cookie)
- 获取Cookie,得到数据
- Cookie[] request.getCookies()
- 创建Cookie对象,绑定数据
-
实现原理
-
基于响应头set-cookie和请求头cookie实现
-
-
cookie的细节
-
多次发送:
- 创建多个Cookie,使用response多次调用addCookie方法发送即可
-
cookie在浏览器中保存时间:
-
默认情况下:浏览器关闭cookie数据被销毁
-
持久化存储:setMaxAge(int seconds)
-
正数:将cookie数据写道硬盘的文件中,持久化存储,second代表cookie存活时间
-
负数:默认值
-
零:删除cookie信息
-
-
cookie在Tomcat8之后可以存储中文信息,在Tomcat8之前cookie中不能直接存储中文数据,需要将中文数据转码
-
-
cookie获取的范围:多个web项目之间默认不能共享cookie
- setPath(String path):设置cookie的获取范围,默认情况下设置当前目录,如果在同一服务器下需要在多个web项目间共享数据设置:setPath("/")
- 不同Tomcat服务器间的cookie共享问题:setDomain(String path)如果设置一级域名相同那么多个服务器之间cookie可以共享 例如setDomain(".baidu.com")则在百度的多个服务器间可以共享数据
-
cookie的特点合作用
- cookie存储数据在客户端浏览器
- 浏览器对于单个cookie的大小有限制(4kb),同一个域名下的总cookie数量也有限制
- 作用:
- 在不登陆的情况下对客户端进行身份识别
- 存储少量不敏感的数据
-
Session
-
概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象Httpsession中
-
快速入门:
-
获取session对象:
- HttpSession session = request.getSession();
-
-
使用session对象的方法:
session.setAttribute("name","value"); session.removeAttribute("name"); session.getAttribute();
-
session的实现依赖于cookie
-
-
细节:
-
当客户端关闭后,服务器不关闭,两次获取的session是同一个吗?
-
默认不相同,非一次会话,且基于cookie,第二次访问时cookie已经销毁,不带有session信息
-
如需要相同可更改所对应的session存活时间
Cookie cookie = new Cookie("JSESSIONID",session.getId()); cookie.setMaxAge(TIME); response.addCookie(cookie);
-
-
客户端不关闭,服务器关闭,两次获取的session是同一个吗?
- 不是同一个,但是需要确保数据不丢失
- session的钝化:在服务器正常关闭前,将session对象系列化在硬盘上
- session的活化:在服务器启动后,将session文件转化入内存
- Tomcat可以自动钝化,活化,idea中操作不能
- 不是同一个,但是需要确保数据不丢失
-
session销毁
- 服务器关闭
- session对象调用invalidate()
- session默认失效时间30分钟
- 可在web.xml文件中修改存活时间
-
session的特点
- 存储一次会话多次请求的数据,存放于服务器
- session可以存放任意类型,任意大小的数据
-
以上是关于会话技术基础学习的主要内容,如果未能解决你的问题,请参考以下文章
20155201 李卓雯 《网络对抗技术》实验一 逆向及Bof基础