美文网首页
2.10回话控制考点

2.10回话控制考点

作者: followyounger1 | 来源:发表于2017-09-04 09:13 被阅读38次

    全方位剖析
    回顾真题
    考点分析
    一网打尽

    简述cookie和session的区别及各自的工作机制,存储位置等,简述cookie的优缺点

    PHP的会话控制技术

    为什么要使用会话控制技术

    web是使用http的,而http是无状态的,也就是http没有内置的机制,维护两个事务的状态。所以同一的用户,请求同一界面两次的时候。http不会认为这两次请求来自同一用户,会把他们当做两次请求的独立。会把这两次请求隔离开。
    如果用户之前登录过,再次登录的时候,http不认为你已经登录了。

    不会保持登录状态。。。而我们的会话控制,就是保持登录状态。

    思想就是:允许服务器跟踪同一用户的不同请求。从而完成登录状态的保持。

    那会话控制技术,有哪些实现的方式呢?
    通过get参数传递

    这样不安全。比较拙略


    Paste_Image.png

    cookie的工作原理
    是服务端给客户端的片段信息,再存储到客户端浏览器的内存或者是硬盘当中的技术。(就是存储在我们浏览器里面的文件,这个文件里面包含我们客户端的片段信息,例如登录,或者其他存储信息)

    Paste_Image.png

    cookie的操作
    写操作setcookie($name,$value,$expire,$path,$domain,$secure);
    $domain,$secure 域名和是否安全
    读取cookie
    $_COOKIE(); 是只读的

    了解,可以使用数组
    setcookie('a[b]','val');

    要想删除的话,setcookie($name,'',time()-1000); 让他过期就好了

    cookie,的优点和缺点
    存储在客户端,所以不会占用服务器的资源

    缺点:将数据存储在客户端,所以不建议讲一些敏感的信息,存储到cookie里面,而且用户有权限禁止cookie的使用。。。

    session是将使用者相同的信息,存储到服务器当中。用户没有办法禁止session的使用。所以,他的优势,相较于cookie来说,还是比较明显的。但是session并不是完全脱离于cookie的,而是基于cookie的。

    Paste_Image.png

    session的操作
    开始
    session_start();
    读取
    $_SESSION;
    清空
    $_SESSION = NULL;
    销毁的话

    session_destory(); //并且,将sessionid也会删除掉。

    session的配置

    session.auto_start()
    session.cookie_domain
    session.cookie_lifetime
    session.cookie_path
    session.name
    session.save_path
    session.use_cookies
    session.use_trans_sid

    如果用户退出的时候,不删除,session会永久在你的浏览器的时候。
    这需要我们的垃圾文件定时清理。
    session.gc_probaility 垃圾处理机制
    session.gc_divisor
    session.gc_maxlifetime

    session.gc_probaility=1 垃圾处理机制
    session.gc_divisor=100
    session.gc_maxlifetime=1440.。 超过100次,就会有一次,去清除,,当前的时间戳减去start的时间等于1440的session

    session.save_handler 是session存储的句柄是什么
    可以存到memcache 或者MySQL啊等等。

    session的优点;
    它的信息非常的安全
    缺点:会占用服务器的内存。

    并且它的分布式也是一个问题。redis

    传递sessionID的问题。
    cookie被禁用之后。
    session_name()和session_id()来传递。

    Paste_Image.png Paste_Image.png

    <a href='1.php?<?php echo SID;?>'>下个页面</a>
    SID 如果cookie可用了的话,他的值是空。。。被禁用了的话,它的值才是
    session_name().'='.session_id()

    这个东西是比较智能的。

    session存储的问题。。

    Paste_Image.png

    session_set_save_handler()
    可以存MySQL,memcache,redis等。

    Paste_Image.png

    找不到文件的话,登录状态,会丢失。

    Paste_Image.png Paste_Image.png

    1,存储到服务器
    2.通过session_set_save_handler() 存储到memcache或者redis里面或者数据库

    遍历的时候session数组。

    相关文章

      网友评论

          本文标题:2.10回话控制考点

          本文链接:https://www.haomeiwen.com/subject/fexxjxtx.html