PHP会话控制

1.什么是会话控制? 答:简单地说会话控制就是跟踪和识别用户信息的机制。会话控制的思想就是能够在网站中跟踪一个变量,通过这个变量,系统能识别出相应的用户信息 

2.为什么会有会话控制? 答:因为HTTP协议是WEB服务器与客户端(浏览器)相互通信的协议,HTTP协议是无状态的协议。HTTP协议本身没有办法区分不同用户,要识别用户就要用会话控制,HTTP将无法告诉我们这两个请求是来自同一个用户

3.PHP Session会话控制: PHP的session会话是通过唯一的会话ID来驱动的,会话ID是一个加密的随机数字,由PHP生成,在会话的生命周期中都会保存在客户端。我们知道客户端(也就是浏览器)保存数据的地方只有cookie,所以PHP的会话ID一般保存在用户机器的cookie中。了解cookie后我们知道,浏览器是可以禁用cookie的,这样会话就会失效。所以PHP会话控制还有一种模式,就是在URL中传递会话ID。如果在浏览网站时我们稍加留心的话,有些URL中有一串看起来像随机数字的字符串,那么其实很有可能就是URL形式的会话控制

4.了解cookie后我们知道,浏览器是可以禁用cookie的,这样的话会话功能就不是失效了吗? 所以PHP会话控制还有一种模式,就是在URL中传递会话ID。

5.客户端只是保存一个会话ID,那么会话控制中保存的会话变量比如你购物时买的物品列表等,它们是存放在哪个地方的呢? 会话变量是在服务器端使用的,那么这些会话变量必定存放在服务器端

6.总结一下会话控制 用户登录或者第一次浏览某个站点的页面时,该站点会生成一个PHP的会话ID并通过cookie发送到客户端(浏览器)。 当用户点击该站点的另一个页面时,浏览器开始连接这个URL。 在连接之前,浏览器会先搜索当地保存的cookie,如果在cookie中有任何与正在连接的URL相关的cookie,就将它提交到服务器。 而刚好在登陆或第一次连接时,已经产生了一个与该网站URL相关的cookie(保存的会话ID), 所以当用户再次连接这个站点时,站点就可以通过这个会话ID识别出用户, 从服务器的会话文件中取出与这个会话ID相关的会话变量,从而保持事务之间的连续。 7.SESSION与COOKIE区别与联系

        区别:
            a、 存放位置不一样
            
            b、 安全级别不同
                因为cookie是存放到客户端上,所以cookie内容可以被修改。相对cookie是不安全。不建议将一些敏感信息存放到cookie中。

                

            c、 大小不一样
                
                单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

                理论上认为session是无限制

             联系:
                
                SESSION产生SESSIONID,这个ID是通过cookie保存在客户端。

                然后下一次当同样一个客户端请求别的页面,就会在请求头中带上SESSID给到服务器。然后服务器根据ID找到存放在服务器端的session文件。

猜你喜欢

转载自blog.csdn.net/rust94/article/details/79428299