Cookie,session 的区别
COOKIE:服务器产生,存储在客户端的一段信息。
原生设置获取方式
setcookie('test', 'abcdefg', 3600, '', '.gj.com');
$a = $_COOKIE['test'];
var_dump($a);exit;
通过浏览器查看:
由此可见:cookie 实现了浏览器与服务器之间的会话。但不安全。
特点:
- cookie 存储在客户端,浏览器允许存放300个cookie,每个cookie大小4KB, 一定场景下满足需求,减轻服务器负载。
- cookie浏览器内置,使用方便,有效期内,只要不清空都存在。
- cookie非可执行文件,向服务器传输不存在安全隐患。
- 有些用户在浏览器设置禁止cookie,禁止情况下不可使用。
Cookie的销毁方式:
setcookie('test', '', time()-10);//把有效时间设置成小于当前时间 $a = $_COOKIE['test']; var_dump($a);exit;
Session:
设置及获取方式:
$_SESSION['test']='hello bawei'; $a = $_SESSION['test']; var_dump($a);exit;
通过浏览器查看:
由此可见:我们设置的变量和值是不可见的。比cookie更安全。
特点:
Session会将产生的信息存储在服务器端,提高了安全性。服务器生成session后,客户端会生成一个sessionid识别号保存在客户端,数据请求时浏览器会发送这个数据给服务器。即使客户端禁止了cookie,可以通过url附加参数或隐含在表单中提交来传送。
- session 不依赖于客户端设置
- session存储在服务器端,更加安全
- session会占用服务器资源,加大服务器负载,并发用户多时,大量session会影响服务器性能。
销毁session: $_SESSION['test']='hello bawei'; session_start(); session_destroy(); $a = $_SESSION['test']; var_dump($a);exit;