php的两种会话技术是,php会话技术

背景:

http的无状态特性, 导致了每一次请求都是相对独立的, 如果需要在这些请求间建立联系, 允许服务端对统一客户端发出的请求进行追踪, 就需要用到会话技术, 主要是使用cookie和 session两种方式

一.cookie

1.概念: 由服务器设置, 存放在客户端浏览器内的数据

2.设置: setcookie($name, $value, $expire, $path, $domain, $secure)

3.读取: $_COOKIE

4.删除: setcookie($name, $value, time()-1 )  //使cookie过期

5.存储数据类型: string

6.优点: 不占用服务器资源

7.缺点: 安全性低,  用户可以禁止使用cookie

二. session

1.概念: 存储在服务器端的会话信息

2.与cookie的关系: PHPSESSID 存储在cookie中, 凭借这个ID可以在服务端获取相应的数据

3.设置: $_SESSION[$key] = $value

4.读取: $_SESSION[$key]

5.删除: $_SESSION = []

6.销毁session文件 session_destroy

7.session的配置:

session.auto_start //自动开启

session.cookie_lifetime

session.cookie_path

session.cookie_domain

也可通过session_set_cookie_params实现

session.name 默认PHPSESSID

session.save_path session文件存储地址

8.session的垃圾回收

session.gc_probablity = 1 清理次数

session.gc_divisor = 100 session开启次数

session.gc_maxlifetime = 1440 过期时间

即每100次开启session, 就有1次, 会清理掉最后修改时间至今超过1440s的session文件

9.session

默认已文件存储 ,目前更常使用redis

①配置文件: session.save_handler = redis

session.save_path = "tcp://127.0.0.1:6379?auth=myPass"

或代码中: ini_set("session.save_handler", "redis");

ini_set("session.save_path", "tcp://localhost:6379");

②实现 session_set_save_handler(

array($handler, 'open'), //开启session自动调用

array($handler, 'close'), //结束session自动调用

array($handler, 'read'),  //读取session自动调用

array($handler, 'write'), //写入session自动调用

array($handler, 'destroy'), //销毁session自动调用

array($handler, 'gc') //触发垃圾回收自动调用

);

10.优点: 安全性高, 存储数据类型不受限, 存储数据量更多

11.缺点: 占用服务器资源

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值