美文网首页
十: PHP会话控制技术

十: PHP会话控制技术

作者: White夏天baby | 来源:发表于2020-10-01 20:36 被阅读0次

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

    Web是通过HTTP协议进行实现的,HTTP协议是无状态协议,HTTP协议没有内部机制来记录会话状态,同一用户请求页面两次的时候,HTTP协议不会认为两次请求都来自同一用户,会认为是两次请求独立。若用户执行登陆操作,再次请求页面,HTTP协议不会认为该用户之前做过登陆。因无法保持该用户之前登陆状态,故无法在不同页面之间进行用户跟踪与保持。会话控制技术就是为了解决这样的问题,它的思想是允许服务器跟踪同一客户端做出的连续请求。

    2.会话控制技术的实现方式

        (1)通过GET参数传递,把用户状态信息通过GET参数方式传递给服务端。缺点:1.用户信息会暴露在地址栏中不安全。2.传递过程中参数有可能会丢失。所以是一种拙劣的方式.

        (2)Cookie,cookie是一种  服务端发送给客户端的片段信息,再存储在客户端浏览器的内存或硬盘上的  技术

      

            Cookie有读、写、删除操作

            写:

       读取       $_COOKIE

       删除      让其过期            setcookie(  $name   ,  ''  ,  time()-1000  )

    Cookie的优缺点

        优点:信息保存在客户端,不占用服务端资源,效率高

        缺点:不安全,用户若禁止Cookei的使用,服务端就无法识别用户信息

    (3)Session  session是将用户信息存储在服务端的技术,一般不会独立使用,会配合session使用

    session的操作  

    使用session之前,必须使用session_start()

    读写           $_SESSION;

    清空          $_SESSION$_SESSION = [];      或         $_SESSION = NULL;

    删除session文件         session_destroy()

    删除session文件后,要把删除保存sessionId的cookie文件

    php.ini文件中session的设置

                                                          session.save_handler              session的存储据柄   (memcache,redis,mysql)

    session优缺点

    优点:信息安全

    缺点:占用服务器资源,分布式问题,多台服务器中的session无法共享,可用redis解决

    若是cookie被用户禁用,可通过session_name()=session_id()来传递sessionid

    或用SID传递,若cookie开启,SID是空,若关闭SID与session_name()=session_id()相等

    Session的存储方式

    默认存储在服务器文件中,可使用session_set_save_handler(),存储到mysql    ,    memcache    ,    redis服务器中

    相关文章

      网友评论

          本文标题:十: PHP会话控制技术

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