PHP中的session

Posted 终身学习者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP中的session相关的知识,希望对你有一定的参考价值。

1.什么是session

 session在计算机中,尤其是在网络应用中,称为会话控制。具体到web的session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。因此从上述的定义可以看到,session是一个特定的时间概念。

2.为什么要使用session

  • HTTP协议是一个无状态的协议,即同一个客户端的本次请求和上次请求没有对应关系,HTTP服务器并不知道这两个请求来自同一个客户端。这样其优点是在于减轻服务器压力;缺点在于每次请求会传输大量重复的内容信息
  • SESSION提供在php脚本中定义全局变量的方法,使得这个全局变量在同一个SESSION中对于所有的PHP脚本内容都有效,所以SESSION是基于HTTP服务器的用于保持状态的方法。
  • SESSION允许通过将数据存储在HTTP服务器中,以在整个用户会话过程中保持该数据,所以SESSION不仅是一个时间概念,还包括了特定的用户和服务器。

3.session的工作原理

4.与SESSION相关的函数

  • session_destroy删除一个回话中的全局数据
  • session_name读取/设置会话名称
  1. 语法:string session_name([string $name]);
  2. 如果指定$name参数,session_name()函数会更新会话名称,并返回原来的会话名称
  3. 必须在调用session_start()函数之前调用session_name()函数
  • session_id获取/设置当前会员id
    • string session_id([string $id]);
    • 如果指定$id参数的值,则使用指定值作为会话ID
    • 必须在调用session_start()函数之前调用session_id函数

5.会话识别符

  • 会话由一个唯一标识符,可以使用session_id函数读取此标识符。为PHP应用程序启用会话状态时,将检查应用程序中每个页面请求是否有浏览器发送的sessionID。如果未提供任何sessionID值,则PHP将启动一个新会话,并将该会话的sessionID值随响应一起发送到浏览器。
  • 默认情况下,sessionID值存储在Cookie中;也可以实现在URL中存储sessionID。
  • 只要一直使用相同的sessionID值来发送请求,会话就被视为活动的;如果特定会话的请求间隔超过特定的超时值,则该会话被视为已经过期。如果使用过期的sessionID值发送的请求将产生一个新的会话。

6.PHP配置中的session片段

 

以上是关于PHP中的session的主要内容,如果未能解决你的问题,请参考以下文章

PHP的Session机制解析

PHP将 SESSION 数据保存到 Redis

PHP将 SESSION 数据保存到 Redis

PHP7中如何设置session和销毁session

jsp可以保存两个session吗?

带备注的 头文件加载文件