1.1 原理:
Cookie 是保存在客户端的信息包 (一个文件)
1. 客户端向服务器发送请求
2. 服务器将值放到响应头中发送到客户端
3. 浏览器自动的将信息放到请求投资带到服务器
1.2 设置 Cookie
- <?PHP
- setcookie('name','tom'); // 将 name=tom 放到响应头中
客户端有 cookei 信息后, 每次请求服务器, cookie 的信息都会自动的放到请求头中带到服务器.
1.3 获取 Cookie 的值
- <?PHP
- echo $_COOKIE['name']; // 从请求头中获取名字是 name 的 cookie
注意:
1, 关闭浏览器后, cookie 消失. 这种 cookie 称为临时性 cookie
2,cookie 的信息不可以在不同的浏览器中共享, 不可以跨浏览器.
1.4 永久性 Cookie
说明: 关闭浏览器后 cookie 的值不消失
语法: 给 cookie 添加过期时间就形成了永久性 cookie, 过期时间是时间类型是时间戳
- $time=time()+3600;
- setcookie('name','tom',$time); //cookie 的有效时间是 3600 秒
1.5Cookie 的有效目录
cookie 默认在当前目录及子目录中有效
cookie 一般要设置在整站有效
setcookie('name','tom',0,'/'); // / 表示根目录
1.6 支持子域名
- <?PHP
- setcookie('name','tom',0,'/','baidu.com'); // 在 baidu.com 域名下都有效
- ?>
- <a href="http://www.bb.baidu.com/bb.php"> 跳转 </a>
1.7 是否安全传输
安全传输就是 https 传输.
默认情况下 https 和 http 都可以传输 cookie
setcookie('name','tom',0,'/','',true); // true 表示只能是 https 传输
1.8 是否安全访问
默认情况下, PHP 和 JS 都可以访问 cookie
安全访问: PHP 可以访问, JS 不可以 默认是 false
- <?PHP
- setcookie('name','tom',0,'/','',false,true);
- ?>
- <a href="/5-demo2.php"> 跳转 </a>
1.9 删除 Cookie
- <?PHP
- //setcookie('name',false); // 删除 cookie 方法一
- //setcookie('name'); // 删除 cookie 方法二
- setcookie('name','tom',time()-1); // 删除 cookie 方法三
注意: cookie 中只能保存数字和字符串.
1.10cookie 的缺点
1, 因为在浏览器中可以看到 cookie 的值, 所以安全性低
2, 因为只能保存字符串和数字, 所以可控性差
3, 因为数据放在请求头中传输, 增加了请求时候的数据负载.
4, 因为数据存储在浏览器中, 但浏览器存储空间是有吸限制的, 一般是 4K.
来源: http://www.bubuko.com/infodetail-3106031.html