PHP cookie和session联系与区别

PHP cookie和session联系与区别

session

PHP的会话也称为Session。PHP在操作session时,当用户登录或访问一些初始页面时服务器会为客户端分配一个SessionID,SessionID是一个加密的随机数字,在Session的生命周期中保存在客户端。它可以保存在cookie中,也可以通过url在网络中进行传输。

用户通过SessionID可以注册一些特殊的变量 ,称为会话变量,这些变量的数据保存在服务器端,在一次特定的网站连接中,如果客户端可以通过Cookie或URL找到SessionID,那么服务器就可以根据客户端来传递SessionID访问会话保存在服务器端的会话变量。

Session的生命周期只在一次特定网站的连接中有效。当关闭浏览器后,Session会自动消失,之前注册的会话变量也不能在使用,具体步骤如下:

  1. 初始化会话

    1
    bool session_start(void)

    该函数将检查SessionID是否存在,如果不存在,则创建一个并且能使用预定义数组来访问如果启动会话成功则函数返回TRUE,否则返回FALSE,会话启动后就载入会话已经注册的会话变量以便使用。

  1. 注册会话变量

    1
    $_SESSION['键名'] = '值';
  2. 访问会话变量

  3. 销毁会话变量

    1
    2
    3
    4
    5
    //销毁一个会话变量
    unset($_SESSION['键名'])

    //销毁所有会话变量
    session_unset();
  4. 销毁会话

    1
    bool session_destroy(void)

    该函数会删除会话的所有数据,并清除SESSIONID,关闭该会话

可以用于服务器共享Session的方式:

  • 利用NFS共享Session数据

    Sun公司为解决Unix网络主机间的目录共享而研发,并发效率不高

  • 基于数据库的Session共享

  • 基于cookie的Session共享

  • 使用类似BIG-IP的负载设备来实现资源共享

    Memechche

    Redis

如何