1. cookie
HTTP 很重要一个特点就是无状态(每一次见面就是初次见面),如果单纯的希望通过我们的服务端程序去记住每一个访问者是不可能的,所以必须借助一些手段或者说技巧让服务器记住客户端,这种手段就是Cookie。
Cookie就像是在超级市场买东西拿到的小票,由超市(server)发给消费者(Browser),超市方面不用记住每一个消费者的脸,但是他们认识消费者手里的小票(Cookie),可以通过小票知道消费者之前的一些消费信息(在服务端产生的数据)
2.PHP中操作Cookie
http://php.net/manual/zh/function.setcookie.php
- 设置cookie
//setcookie是专门用于设置cookie的函数
setcookie( 'key','value' );
还有一种方式可以设置cookie
header('Set-Cookie:key=value');
2.获取cookie
var_dump($_COOKIE);
3删除cookie
//只传一个参数就是删除cookie
setcookie('key');
4,设置过期时间
//setcookie的第三个参数
//不传递就是会话级别的Cookie(关闭浏览器就会自动删除)
setcookie('key','value',过期时间);
5,cookie的默认作用域是’/‘根目录
//setcookie的第四个参数,传递的是一个路径
setcookie('key','value',过期时间,path路径);
6,setcookie还有第五个参数和第六个参数,可以自己去阅读文档
3.js中如何操作Cookie
//获取cookie(这里会返回所有的cookie的一个字符串结果)
console.log(document.cookie);
//设置cookie
document.cookie = 'key=value';
//设置cookie的过期时间(可以在客户端操作!)
document.cookie = 'cookie的key=cookie的value;expires=这里需要你拼接的过期时间';
4.Cookie中的问题及解决方案
因为客户端可能会伪造一个cookie(设置cookie的过期时间等)
这里我们就要解决这个问题,为此就需要学习session
Session
官话:由于Cookie是服务端发给客户端由客户端本地保存的。换而言之客户端可以在本地对其随意操作,包括删除和修改。如果客户端随意伪造一个Cookie的话,对于服务端是无法辨别的,就会造成服务端被蒙蔽,构成安全隐患。于是乎就有了另外一种基于Cookie基础之上的手段:Session
//开启session
session_start();
//设置session
$_SESSION['key'] = 'value';
//删除一个session
unset($_SESSION['key']);
//取一个session(这里取的值的类型,与存储值的类型一致,假如存储的是一个数字,取出来的值也是一个数字,而不是一个字符串,如$_COOKIE['key']取出来的就是一个字符串)
$_SESSION['key'];
Session区别于Cookie一个很大的一个地方就是:Session数据存在了服务端,而Cookie存在了服务端,而Cookie存在了客户端本地,存在服务端最大的优势就是,不是用户想怎么改就怎么该了