什么是会话(session)
- 我们知道http协议的一个主要的特点就是无状态,所以从一个请求到另外一个请求,我们从何去知道这些请求是否都是来自于同一个用户?或者说我们要怎么‘跟踪’一个用户?实际上会话的应用场景还有很多,登陆、权限管理、购物车等。
session基本功能
- php中所有的session都是通过一个session id来驱动的,session id
是一个经过加密后的随机数字。它由php生成,可以通过cookie或者url被客户端获取,session id 允许我们命名一些变量,这些变量也被称作session变量,session变量只保存在服务器端。
<?php
session_start();//开始一个会话
$_SESSION['name'] = 'Tom';//注册session变量
//TODO 业务逻辑
$_SESSION = array();//销毁session变量
session_destroy();//清除session id
什么是cookie
在会话的机制中,cookie是客户端的解决方案,客户端可以通过cookie或者url两种方法来获取session id,那么我们就可以访问之前注册的保存在服务端的session变量。浏览器访问一个url的时候,先会去找本地保存的cookie,如果找到与这个url相关的cookie就将它发送给服务器。
在php中,可以使用setcookie()函数来手动设置cookie
<?php
setcookie('mycookie',value);//手动设置一个cookie