会话跟踪技术Cookie&Session
会话:用户使用浏览器访问服务器资源,会话建立,直到一方断开连接,会话结束
一次会话可以有多次请求和响应
一.会话跟踪技术:服务器需要识别多次请求是否来自同一浏览器,以便在一次会话的多次请求中共享 数据
因为HTTP协议是无状态的,每次浏览器想服务器请求时,服务器每次都会将请求视为新的请求, 所以需要会话跟踪技术
实现方式:
1.客户端会话跟踪技术:Cookie
2.服务端会话跟踪技术:Session
二.Cookie基本使用
Cookie:将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
发送Cookie:1.创建Cookie对象,设置数据 2.发送Cookie带客户端:使用response对象
获取Cookie:3.获取客户端携带的所有Cookie,使用request对象
4.遍历数组,获取每一个Cookie对象:for
5.使用Cookie对象方法获取数据
三.Cookie原理和细节
Cookie的实现基于HTTP协议
响应头:set-cookie 请求头:cookie
Cookie使用细节
①Cookie存活时间
默认情况下,Cookie存储在浏览器内存中,浏览器关闭,内存释放时,cookie被销毁
持久化:setMaxAge(int seconds):设置Cookie存活时间
设置正数则写入电脑硬盘,设置负数为默认值,随浏览器内存,设置零则删除
②Cookie存储中文
Cookie不能直接存储中文
如需要存储,则进行转码:URL编码
四.Session使用细节
服务端会话跟踪技术:将数据保存在服务端
HttpSession接口,实现一次会话的多次请求间数据共享功能
1.获取Session对象
HttpSession session = request.getSession();
2.Session对象功能
void setAttribute :存储数据到Session域中
Object getAttribute:根据key,获取值
void removeAttribute:根据key,删除该键值对
五.Session原理
Session是基于Cookie实现的
Session使用细节
①Session钝化、活化
服务器重启后,Session中的数据是否还在?在
钝化:正常关闭时,会写入硬盘文件
活化:再次启动服务器,从文件加载数据到Session中
②Session销毁:
默认情况下,无操作,30分钟自动销毁
调用Session对象的invalidate()
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!