HTTP是无状态协议,没有内建机制维护两个事物之间的状态,同一个用户在请求同一个页面两次的时候,HTTP协议不会认为这两次请求都认为是同一用户的请求,会当作两次请求的独立。会把两次请求隔离开,会认为两次请求是不一样的两我的进行请求或访问。若是用户进行了登陆操做,再次请求页面,HTTP协议不会认为该用户以前进行过登陆,没有办法保持以前的用户登陆状态,因此不能再不一样页面之间进行用户登陆操做的跟踪状态和会话的保持。mysql
会话控制就是为了解决跟踪同一用户的状态。容许服务器跟踪同一客户端作出的连续请求。保持用户的状态,从而保持用户的登陆状态。redis
GET参数进行传递 信息不安全,参数丢失sql
cookie 是一种由服务器发送给客户端的片断信息,存储在客户端浏览器的内存或硬盘当中的技术。浏览器
setcookie(key,value,expire,path,domain,sercure);安全
$_COOKIE 读取数据服务器
setcookie('a[b]','val');cookie
setcookie('a[b]','',time()-1000);session
cookie优势 存储在客户端,不会占用服务器的资源。效率高。 缺点:存储在客户端不安全,不建议将一些敏感、重要的信息存储在客户端,用户禁止cookie 将不能存储cookie值。dom
session 将用户的信息存储在服务器中,用户不能禁用session的使用。基于cookie的存储,session_id 存储在cookie中。cookie被禁用能够用URL参数进行传递,保存session的状态。blog
用户读取session ,会将cookie中存储的session_id,在服务器中找到对应的session文件,而后读取数据。
session_start();
$_SESSION;
$_SESSION = []; 删除session数据
session_destroy();删除session文件
session.auto_start 是否自动开始session
session.cookie_domain 存储session的cookie的有效域名
session.cookie_lifetime
session.cookie_path
session.name 默认PHPSESSION
session.save_path 存储路径
session.use_cookies 是否用cookie存储session_id
session.use_trans_sid 是否用传递的方式传递session_id
session.save_handler 句柄
session.gc_probability =1 垃圾回收机制
session.gz_divisor =100
session.gc_maxlifetime =1440 最大生命周期S
每100次会清理1次 超过1440秒
session 安全,存储在服务器端 占用资源
session_name session_id SID常量
session_set_save_handler() 存储方式的改变 能够存储在mysql redis memcache 中