会话控制技术session 和cookie

HTTP是无状态协议,没有内建机制维护两个事物之间的状态,同一个用户在请求同一个页面两次的时候,HTTP协议不会认为这两次请求都认为是同一用户的请求,会当做两次请求的独立。会把两次请求隔离开,会认为两次请求是不同的两个人进行请求或访问。如果用户进行了登录操作,再次请求页面,HTTP协议不会认为该用户之前进行过登录,没有办法保持之前的用户登录状态,所以不能再不同页面之间进行用户登录操作的跟踪状态和会话的保持。

会话控制就是为了解决跟踪同一用户的状态。允许服务器跟踪同一客户端做出的连续请求。保持用户的状态,从而保持用户的登录状态。

GET参数进行传递  信息不安全,参数丢失

cookie 是一种由服务器发送给客户端的片段信息,存储在客户端浏览器的内存或硬盘当中的技术。

setcookie(key,value,expire,path,domain,sercure);

$_COOKIE 读取数据

setcookie('a[b]','val');

setcookie('a[b]','',time()-1000);

cookie优点 存储在客户端,不会占用服务器的资源。效率高。 缺点:存储在客户端不安全,不建议将一些敏感、重要的信息存储在客户端,用户禁止cookie 将不能存储cookie值。

session 将用户的信息存储在服务器中,用户不能禁用session的使用。基于cookie的存储,session_id 存储在cookie中。cookie被禁用可以用URL参数进行传递,保存session的状态。

用户读取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 中

 

 

posted @ 2018-11-21 18:49  玲汐  阅读(409)  评论(0编辑  收藏  举报