php session工作原理及使用实例

时间:2016-07-29
php session技术与cookie相似,都是用来存储使用者的相关资料,但最大的不同之处在于cookie是将资料存放在客户端电脑中,而session是将数据存储在服务器系统之下。本文章向大家介绍php session工作原理及实例,需要的朋友可以参考一下。

session工作原理

session用来存储用户相关信息,当某个用户向WEB服务器发出请求时,服务器首先会检查这个客户端的请求里是否已经包含了一个Session ID。如果包含,说明之前已经为此用户创建过session,服务器则按照该Session ID把Session检索出来使用。如果客户端请求不包含Session ID,则为该用户创建一个Session,并且生成一个与此Session相关联的session id,在本次响应中被传送给客户端保存。

session工作原理

Session是存放于服务器之中的,为了避免对服务器系统造成过大的负荷,因此Session并不像cookie是一种半永久性的存在,Session会因为下面两种情况尔自然消失。

  1. 当使用者关闭浏览器,失去与服务器之间的连接之后,Session即会自然消失,而当用户下次登入网站时,再另行配置一个Session使用。
  2. Session制定的有效期限到期。一般而言php系统中对于Session的生存时间并无定义,也就是说,预设时间为0。但php开发人员可以通过修改php.ini配置文件中有关session.cookie.lift_time项目来设定Session的有效期限,以秒为单位指定了发送到浏览器的COOKIE的生命周期,值为0表示直到关闭浏览器,默认为0,。当系统赋予Session有效期限后,不管浏览器是否开启,Session都会自然消失。

一个简单的session实例

先看用下面一个简单的php session实例:

<?php
   /* http://www.manongjc.com/article/1272.html */
   session_start();
   $_SESSION['username'] = "Joe";
   echo "Your username is ".$_SESSION['username'].".";
?>

上面实例中,session_start()是session开始,在使用session之前,我们必须调用session_start();而且是在浏览器没有任何输出之前调用session_start()。开启session后,我们可以开始创建一个session

$_SESSION['username'] = "Joe";

该代码创建一个username的session,其值为"joe",我们刚才说过,在整个用户会话中session信息将不会丢失,因此,我们可以在WEB应用程序中的任何地方调用$_SESSION['username']。