---
description: 记录 HTTP Session 的创建、访问、过期、登录用户、在线状态和序列化会话数据。
navTitle: HTTP_SESSIONS
---
# **HTTP\_SESSIONS HTTP Session 持久化存储表**

记录 HTTP Session 的会话 ID、登录用户、创建时间、最近访问时间、过期时间、IP 地址、集群节点、客户端信息和序列化会话数据。该表用于分布式 Session 持久化、在线用户统计、登录审计和异常访问排查。

系统支持两种会话存储模式，通过 JVM 参数 `-Dsucc.sessionStore` 配置：

- **默认模式**（`default`）：Session 持久化到本表，集群节点共享读写，不需要额外中间件。
- **Redis 模式**（`redis`）：Session 存储在 Redis，读写性能最高，需要提前部署 Redis。

选择建议：生产集群有 Redis 优先用 Redis 模式，没有 Redis 用默认模式。未配置或配置未知值时使用默认模式。

会话数据、IP 地址和客户端信息属于安全审计数据，不应公开给无关人员。

## 位置{#position}

模型路径：`/sysdata/data/tables/sec/HTTP_SESSIONS.tbl`

物理表名：`SZSYS_5_HTTP_SESSIONS`

## 表结构{#structure}

| 字段名 | 字段类型 | 字段描述 |
| :----  | :---- | :------ |
| SESSION\_ID | VARCHAR(128) | HTTP Session ID，主键 |
| USER\_ID | VARCHAR(64) | 当前登录用户 ID |
| IP\_ADDRESS | NUMBER(16) | 登录或最近访问时记录的 IPv4 地址 |
| CLUSTER\_NODE | VARCHAR(128) | 会话创建时所在集群节点，关联 CLUSTERNODES |
| USER\_AGENT\_ID | NUMBER(8) | 登录设备的 User-Agent 标识，关联 USER\_AGENTS |
| CREATE\_TIME | TIMESTAMP | 会话创建时间 |
| LAST\_ACCESS\_TIME | TIMESTAMP | 最近访问时间 |
| EXPIRY\_TIME | TIMESTAMP | 会话过期时间 |
| SESSION\_DATA | BLOB | 序列化后的 Session 属性数据（Apache Fury 序列化） |

## Session ID 格式{#session-id-format}

格式为 `<HASH8><UUID24>`：

- `HASH8` — 标识符的 8 位十六进制哈希，携带用户特征
- `UUID24` — 随机 UUID 去横线后取后 24 位

## 表索引{#indexes}

| 类型 | 名称 | 字段列表 | 是否唯一 | 说明 |
| :---- | :---- | :---- | :------ | :------ |
| 主键 | PRIMARY | SESSION\_ID | 是 | 唯一标识一条 HTTP Session 记录 |
| 索引 | - | - | - | 该表未定义其他索引 |

## 使用注意{#notice}

1. 无论哪种存储模式，系统都会向本表写入一条记录用于在线用户统计和登录审计。区别在于：默认模式会写入 `SESSION_DATA` 字段保存完整的 Session 属性数据；Redis 模式只写入用户 ID、时间、IP 等元数据字段，不写 `SESSION_DATA`。
2. `SESSION_ID` 是 HTTP Session 的唯一标识，和业务用户 ID 不是同一概念。格式见 [Session ID 格式](#session-id-format)。
3. `CREATE_TIME` 在会话创建时写入，不再变更。
4. `LAST_ACCESS_TIME` 每次请求结束时更新，用于活跃度统计和缓存版本号判断。
5. `EXPIRY_TIME` 标记会话过期时间。过期会话不会立即删除，查询时通过 `EXPIRY_TIME > now()` 过滤，历史数据由后台任务或手动清理。
6. `SESSION_DATA` 为 BLOB，存储 Apache Fury 序列化的 Session 属性。仅应由 `SessionRepository` 读写，业务查询不要依赖其内部格式。
7. `CLUSTER_NODE` 记录会话创建时所在节点。分布式模式下会话可在任意节点恢复（会话漂移），此时该字段仍是创建节点，不代表当前服务节点。
8. `IP_ADDRESS` 存储为整数格式的 IPv4 地址，方便按 IP 范围查询审计日志。
