1、为什么使用会话控制技术?
web是通过http协议实现的,http是一种无状态协议(也就是说http没有一个内建机制来维护两个事物之间的状态),所以同一个用户在请求页面两次的时候,http协议不会认为这两次请求都是来自同一个人,所以没办法保持用户的跟踪和状态的保持。会话控制就是解决这个问题
会话控制的思想是:允许服务器跟踪同一个客户端做出的连续请求
2、实现方式
Cookie:存储在浏览器中的一个文件(客户端)
Cookie的操作
①、setcookie(value值,path路径,secure时候安全性进行传递)
②:$_COOKIE。
③:setcookie($name,'',time()-1000)删除cookie
cookie优点:信息存储在客户端,不会占用服务器资源
cookie缺点:信息存储在客户端,不建议将一些敏感重要的信息存在cookie中并且用户可以禁用cookie
Session:将使用者的资料存储在服务器当中,用户无法禁用,但是session基于cookie
Session的操作
①:session_id是存储在cookie中的,如果cookie被禁用,可以通过url来传递session_id
②session的信息都存储在服务器当中的一个文件里
③:session_start();_SESSION=[]/$_SESSION=null(清空session的内容);session_destroy(删除文件,并且将session_id的cookie删除掉)
3、配置
session.auto_start(时候自动开启session_start)
session.cookie_domain(存储session_id的cookie的有效域名是什么)
session.cookie_lifetime
session.cookie_path
session.name(默认PHPSESSID)
session.save_path(session文件存储在服务端中是什么样的路径)
session.use_cookies(时候使用cookie来传递session_id)
session.use_trans_sid(时候可以使用传递的方式来传递session_id)
垃圾回收机制:
session.gc_probability=1
session.gc_divisor=100
session.gc_maxlifetime=1440(默认)
每次开启session都有1/100的几率清除过期的session
session.save_handler(session存储的句柄是什么)
session优点:信息存储在服务器,数据比较安全
session缺点:占用服务器的资源,分布式不可用