PHP Session机制详解:从生成到存储全过程.pdfVIP

  • 0
  • 0
  • 约7.8千字
  • 约 18页
  • 2026-02-06 发布于北京
  • 举报

PHP Session机制详解:从生成到存储全过程.pdf

Session

服务器端session会话数据区

默认:

在服务器端操作系统临时目录中的一个个独立的session数据区文件。

方式(文件),及其位置(系统临时目录)都是可以被配置的,配置项:php.ini:

方式:

位置:

测试修改位置:

建议使用ini_set()进行修改,而不是去修改Php.ini。其目的修改的结果仅仅对于当前周

期有效,不会影响其他项目!

目录:

修改配置:

浏览器端中的Session-ID

两种请情况:

其一:浏览器端不存在session-ID

浏览器向服务器请求时,不会携带session-ID。

服务器端由于要使用session机制,就会生成session-ID,在响应时分配给浏览器端。

该周期结束后,浏览器上已经存在了session-ID这个变量。

其二:浏览器端已经存在session-ID

浏览器向服务器发出请求时,携带session-ID到服务器端:

服务器端需要开启session机制,但由于浏览器已经携带了session-ID,就不需要重

成,直接使用浏览器携带的即可。

可见,服务器就是在该浏览器的多次请求周期内,一直使用该ID,标识对应的session数据

区。

PHP对于session数据的处理

PHP代码中:$_SESSION完成session数据的操作

执行结束后:session数据区(默认文件)中session数据。

$_SESSION与session数据区(默认文件)之间的同步交互流程:

如图:

要点:

一:session-id的确定

二:$_SESSION这个变量,是在session_start()过程中,初始化的(定义并设置值)。下图测

试,session_start()前,没有$_SESSION变量存在。

三:仅仅在周期内,操作$_SESSION,而不是去操作session数据区。

四:只有在周期结束时,才会将当前周期内处理好的session数据,到session

数据区中去。

五:每次请求都是相同的逻辑。(无论所谓的第一次,还是第N次,服务器认为每次都是第

一次)

Session数据的属性

有效期,有效路径,有效,是否仅安全连接传输,是否为HTTPOnly

首先:session数据不像数据,每个值都可以设置属性。

Session数据的属性是针对于所有的session数据。

其次:导致session数据属性的,是在浏览器端中的session-ID的属性导致

的。

就是指的是,该变量的属性:PHPSE=XXXXXXXXXX,影响到与之关联的session数

据的属性。

如下所示:

以上默认值,都是由PHP的配置项:php.ini决定:

Session-ID这个变量的名(key):

有效期:会话结束(浏览器关闭)

有效路径:session的有效路径,整站有效。

有效:当前

是否仅仅安全连接传输:否。

是否为HTTPOnly:否。

如何修改,修改该变量的属性即可:

方案一:修改php.ini(不建议)

方案二:ini_set()(推荐)

在开启session之前。每次开启session之前。

以时间为例,展示:

方案三:session_set__params();(更推荐)

Session机制专门为设置的属性而,创建的函数。

语简单写。

Session_set__params(有效期,有效路径,有效域,是否secure,是否httponly);

强调

虽然session的属性可以被设置。但是几乎不会修改有效期,有效路径这两个属性。

记住实际操作层面:session数据时会话周期内有效,同时是整站有效!

常见的修改:有效和httponly,

数据类型的支持

Session支持多种数据类型,都支持。除了资源!

存:

取:

可见,所有的类型都可以被

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档