会话ID 和 会话变量的区别

理解PHP会话机制及应用
本文详细解析了PHP中会话的初始化、变量注册、跨页验证与清除流程,阐述了会话ID与变量的作用,同时解释了如何通过会话ID与变量实现用户身份的持久化验证。

     PHP中,每次开始会话将会调用session_start()函数,将会检查是否存在会话ID,如果不存在则创建一个(在初次访问,或者长时间不访问后,再次访问);如果存在,则载入对应的会话变量。

     第二步,注册会话变量,根据会话ID,注册会话变量。比如用户使用ID:1(实际上是随机编码,没这么简单的)访问服务器,并且通过了登陆界面,服务器分配给此ID一个会话变量user1。

    第三步,访问其他网页,每个网页的开头都要检查用户ID及会话变量,保证是同一个用户。

    第四步,清除会话变量,再清除会话ID。

   问:为什么使用会话ID又使用会话变量?

    答:使用会话ID是保证,是同一台客户端在访问;但是这还不够,服务器还需要知道这个客户端的使用者,所以使用会话变量,关联此ID。

   有人又会问,那么在用户登录之后,我就用判断此ID来判断是不是同一个用户呀?正解,你那什么判断是同一个用户,是不是比如说用一个数组,key是用户名字,而value是ID? 哈哈,会话变量的效果是key是ID value是用户名。效果不是一样的嘛?

   就是这样的!

<think>首先,用户的问题是关于“sid 会话 ID区别”,我需要根据系统级指令用户可见层的要求来回答。 系统级指令: 1. 所有行内数学表达式必须使用 $...$ 格式。 2. 独立公式必须使用 $$...$$ 格式并单独成段。 3. LaTeX语法正确。 4. 使用中文回答。 5. 生成相关问题。 6. 回答中引用的段落末尾自然地添加引用标识,例如 [^1]。 用户可见层: - 回答结构清晰,帮助用户逐步解决问题。 - 尽量保证回答真实可靠。 - 参考站内引用:有引用 [^1], [^2], [^3] 提供了相关信息。 用户的问题:理解 sid 会话 ID 在技术上的区别,具体是“sid 会话 ID区别”。 从引用中: - 引用 [^1]:解释了会话首进程,会话 ID(SID)是会话首进程的进程 ID会话中的所有进程共享相同的会话标识符。 - 引用 [^2]:展示了通过 `ps ajx` 命令查看进程信息,包括 PPID, PID, PGID, SID会话 ID),TTY 等。SID会话 ID。 - 引用 [^3]:提到了在 Oracle 中根据会话 ID 查询 SQL_ID,但这里的“会话 ID”可能指的是数据库会话,而不是操作系统级别的会话。 在操作系统上下文中: - SIDSession ID)通常指的是会话 ID。 - 用户的问题是“sid 会话 ID区别”,但根据引用,SID 就是会话 ID 的缩写。所以,可能没有区别,或者 SID会话 ID 的简称。 我需要澄清: - 在操作系统中,会话Session)是一组进程的集合,通常与一个终端会话相关。 - 会话 IDSession ID 或 SID)是唯一标识一个会话的数字。 - SIDSession ID 的缩写,所以它们应该是同一个概念。 因此,区别可能在于: - SID 是缩写,会话 ID 是全称。 - 在上下文中,没有实质区别。 但用户可能误解了,或者在不同语境下(如数据库 vs 操作系统),含义不同。 - 引用 [^1] [^2] 是关于操作系统进程的。 - 引用 [^3] 是关于 Oracle 数据库的,那里的“会话 ID”可能指数据库会话 ID。 用户的问题指定“在技术上的区别”,所以我应该聚焦于操作系统级别,因为引用 [^1] [^2] 更相关。 回答结构: - 逐步解释。 - 使用清晰的结构。 - 确保真实可靠。 大纲回答: 1. 定义会话 ID:在操作系统中,会话 ID 是一个唯一标识符,用于表示一组相关进程的集合。 2. 定义 SID:SIDSession ID 的缩写,通常等同于会话 ID。 3. 区别:没有实际区别;SID会话 ID 的简称。 4. 在引用中支持:引用 [^1] [^2] 显示 SID 就是会话 ID。 5. 如果有混淆,解释不同语境(如数据库)。 生成相关问题: - 根据系统指令,在回答末尾生成相关问题。 LaTeX 使用: - 用户问题中没有数学表达式,但如果有,确保使用正确格式。这里可能不需要数学表达式,但如果有变量或代码,处理一下。 - 例如,在解释时,如果有进程 ID,可以用行内格式,如 $PID$。 引用标识: - 在引用段落末尾添加 [^n],自然地。 完整回答: - 以中文回答。 - 结构清晰:先介绍概念,然后解释区别,最后总结。</think>### sid 会话 ID区别 在操作系统进程管理中,sidSession ID 的缩写)会话 IDSession ID)本质上是同一个概念,没有实质区别。sid会话 ID 的简称,两者都用于标识一个会话Session),即一组相关进程的集合,通常与一个终端会话(如用户登录 shell)相关联。下面我将逐步解释它们的含义、关系以及常见使用场景,帮助您澄清任何可能的混淆。 #### 1. **基本定义** - **会话 ID (Session ID)**:在操作系统中,会话 ID 是一个唯一的整数标识符,用于表示一个会话会话是由多个进程组成的逻辑组,这些进程共享相同的终端或控制终端(TTY),并通常由会话首进程(session leader)创建。会话中的所有进程都具有相同的会话 ID,这有助于系统管理进程组资源[^1]。 - **sid (Session ID 的缩写)**:sidSession ID 的简写形式,在技术文档命令行工具中常用。例如,在 Linux 系统中,通过 `ps` 命令查看进程信息时,`SID` 列就代表会话 ID。因此,sid 会话 ID 是等价的,只是表达方式不同(一个是缩写,一个是全称)[^2]。 简而言之,sid 会话 ID 指的是同一个标识符,没有技术上的区别。例如,在引用中: - 引用 [^1] 提到:“会话首进程(session leader)是指创建会话的进程,其进程 ID 会成为会话 ID(sid)”。 - 引用 [^2] 展示的 `ps ajx` 命令输出中,`SID` 列直接对应会话 ID,如 `/sbin/init` 进程的 SID 为 1。 #### 2. **为什么可能产生混淆?** - **术语使用习惯**:在英文文档中,Session ID 常缩写为 sid,而中文环境下可能直接使用“会话 ID”或“sid”。这可能导致用户误以为两者不同,但实际是同一概念。 - **跨语境差异**:在数据库系统(如 Oracle)中,“会话 ID”可能指数据库会话(例如用户连接会话),而非操作系统级别的会话。例如,引用 [^3] 中的“会话 ID”用于 Oracle 数据库查询(如 `v$session` 表),这与操作系统的 sid 无关。但在操作系统层面,sid 始终指会话 ID[^3]。 - 关键点:如果上下文是操作系统进程(如 Linux),sid 会话 ID 完全一致;如果涉及数据库,则“会话 ID”可能有不同含义。 #### 3. **如何查看验证** 在 Linux 系统中,您可以使用命令行工具验证: - 运行 `ps ajx` 命令查看进程信息,`SID` 列即为会话 ID(sid)。例如: ```bash $ ps ajx PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND 0 1 1 1 ? -1 Ss 0 0:00 /sbin/init splash 0 2 0 0 ? -1 S 0 0:00 [kthreadd] ``` - 这里,`SID` 值(如 1 或 0)表示会话 ID。所有共享相同 `SID` 的进程属于同一个会话[^2]。 - 会话首进程的 PID(进程 ID)会成为该会话的 SID。例如,如果 `/sbin/init` 的 PID 是 1,则其 SID 也是 1,表示它是会话首进程[^1]。 #### 4. **总结区别** - **无区别**:在操作系统语境下,sid 就是会话 ID 的缩写,两者完全等价。 - **潜在混淆点**: - 在数据库系统中,“会话 ID”可能指应用层会话(如 Oracle 会话),这时与操作系统的 sid 不同。 - 在编程中,开发者可能习惯使用缩写(如 `sid`),而文档中可能用全称“会话 ID”,但技术实现上相同。 总之,sid 会话 ID 在操作系统进程管理中是一个概念,用于管理进程组终端会话。如果您在特定上下文(如数据库)中遇到“会话 ID”,请确认其具体含义以避免歧义[^1][^2][^3]。 ### 相关问题 1. 会话 ID 在进程管理中的作用是什么? 2. 如何创建一个新的会话并设置会话首进程? 3. 在数据库中(如 Oracle),会话 ID 与操作系统 SID 有何不同?
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值