当前位置 : 主页 > 编程语言 > 其它开发 >

php 会话跟踪

来源:互联网 收集:自由互联 发布时间:2021-08-24
php 会话跟踪 [toc] //md 内容表 会话跟踪 web 应用程序是使用 HTTP 协议传输数据的;HTTP 协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建

php 会话跟踪

[toc] //md 内容表

会话跟踪

  • web 应用程序是使用 HTTP 协议传输数据的;HTTP 协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这意味着服务器无法从连接上跟踪会话
  • 会话跟踪是 Web 程序中常用的技术,用来跟踪用户的整个会话。(数据的跨页面传值)
  • 网页间数据传递的方式
  1. 超链接 <a href='index/index?id=1'></a>
  2. PHP 的header()函数,将一个函数从一个脚本传到另一个脚本
  3. cookie、session 和 token
  • 把用户的资料储存在客户端计算机/硬盘/浏览器上
  • PHP 中的setCookie()函数可以设置cookie
  • 如果不设置 setCookie()的过期时间,会在浏览器关闭后自动销毁

一般格式:

setCookie(cookie名,cookie值,cookie过期时间)

1.储存 cookie 1 小时

setCookie("uname",'admin', time()+3600);

2.读取 cookie

$_COOKIE[cookie名]

3.销毁 cookie

setCookie("uname",'admin', time()-3600);
需要刷新 2 次

4.查看 cookie

1.可以在 Network 中的 Headers 请求头/响应头里查看
2.可以在 Console 里,输入 document.cookie 查看
3.可以在 Application 中的 Storage 可以查看 session/cookies

二. session(可实现页面之间数据共享)

  • 把用户的资料储存在服务器上
  • php.ini 里有 session 相关配置

    1.开启 session

<?session_start()?>
须在文件最顶端书写

2.存入会话

$-SESSION['uname'] = $value

3.读取 session

<?=$_SESSION['uname']?>

4.销毁 session

4.1 以下 2 种删除 session 信息 并不会删除 session 文件

unset($_SESSION['uname']);
$_SESSION = [];

4.2 彻底删除文件

session_destroy();

5.垃圾回收 session

5.1 清理次数

session.gc_probablity = 1;

5.2 session 开启次数

session.gc_divisor = 100;

5.3 过期时间

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

6.session 是基于 session id 的查询方式

    1. cookie:通过在客户端记录信息确定用户身份
      session:通过在服务器端记录信息确定用户身份

    1. cookie 不是很安全,别人可以分析存放在本地的 COOKIE 并进行 COOKIE 欺骗考虑到安全应该使用 session
    1. session 会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用 cookie
    1. 单个 cookie 保存的数据不能超过 4k,很多浏览器都限制一个站点最多保存 20 个 cookie

四.token

  • 原理:用户登录以后 php 连接 mysql 验证用户名/密码,验证成功以后,返回一个 token
  • 明文变密文 openssl_encrypt,密文变明文 openssl_decrypt
网友评论