php 基于cookie的sessIon机制

session_start()是session机制的开始,它有一定概率开启垃圾回收,因为session是存放在文件中,PHP自身的垃圾回收是无效的,SESSION的回收是要删文件的,这个概率是根据php.ini的配置决定的。session会判断当前是否有$_COOKIE[session_name()]

第一次访问e.php这个页面会有set-cookie: PHPSESSID=xxxx,

第二次访问e.php这个页面就不会有了。

<?php
//if($_COOKIE['viewer']){
//    session_id($_COOKIE['viewer']);
//}
//session_id("session1");
//var_dump($_COOKIE);
session_start();
if(!$_SESSION['name']){
    $_SESSION['name'] = 'lijinling';
}
setcookie("viewer", 'session1', time()+1000, '/test');
var_dump($_SESSION);
~                          

  session_start() 会判断请求过来的, http request header 中是否有$_COOKIE[session_name()];

有的话,就不会setcookie("PHPSESSID", 'xxxx',.....), 没有的话,就会。在response header 中就能看到。

原文地址:https://www.cnblogs.com/oxspirt/p/9507640.html