【个人技术经验及开发技巧分享】 【个人技术经验及开发技巧分享】
首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载

Louis

首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载
  • 操作系统初识

  • JAVA基础

  • JVM

  • 开发框架

  • Redis

  • Zookeeper

  • 消息中间件

  • 持久化

  • 算法

  • 网络

    • 网络模型
    • HTTPS
    • TCP交互
    • 代理
    • Session的生命周期
      • 1 Session和Cookie的区别
      • 2 Session的生命周期
        • 2.1 Session的创建
        • 2.2 Session的销毁
      • 3 Session的特点
  • 系统架构

  • 学习笔记
  • 网络
luoxiaofeng
2022-07-03
目录

Session的生命周期

# 1 Session和Cookie的区别

Session的数据存储在服务器的内存上,而cookie保存在客户端的浏览器上。

Session保存在服务器的内存上,为了防止内存被占满,需适当的释放session所占的内存。这里就涉及到了Session的生命周期。

# 2 Session的生命周期

# 2.1 Session的创建

Session是在服务器接收到浏览器的第一次请求时,自动创建,也可以通过 request.getSession(true) 手动创建。

服务器将客户端发来的数据放入session对象中,并将session的id通过 set-cookie:jsessionid=xxx 的头发送到浏览器中。

客户端收到之后,将这个id存起来,再次访问服务器时会通过cookie头携带这个id访问服务器,服务器可以根据id找到对应的session对象,并获取数据。

# 2.2 Session的销毁

1)服务器关闭时。

2)session超时。超时时间可以在配置文件中配置,默认30分钟。

<!--在web.xml文件中设置HttpSession过期时间。 -->
    <session-config>
        <session-timeout>30</session-timeout>
    </session-config>
<!--系统默认30分钟 -->
1
2
3
4
5

设置HttpSession的过期时间:单位为S

session.setMaxInactiveInterval(5);
out.print(session.getMaxInactiveInterval());
1
2

3)手动调用invalidate()方法销毁。

# 3 Session的特点

1)Session中的数据保存在服务器端。

2)Session中可以保存任意类型的数据。

3)Session默认的生命周期是30分钟,可以手动设置更长或更短的时间。

Session生成后,只要用户继续访问,服务器就会更新Session的最后访问时间,并维护该Session。用户每访问服务器一次,无论是否读写Session,服务器都认为该用户的Session"活跃(active)"了一次。

代理
架构设计

← 代理 架构设计→

最近更新
01
SpringBoot
10-21
02
Spring
10-20
03
Sentinel
10-14
更多文章>
Copyright © 2022-2023 Louis | 粤ICP备2022060093号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式