当前位置: 首页 > 后端技术 > PHP

PHP面试笔记(8)——PHP基础知识——会话控制考点

时间:2023-03-29 23:10:08 PHP

本文是在MOOCJason老师的课程基础上对PHP面试知识点的总结和升华。如有侵权,请联系我删除,邮箱:guoyugygy@163.com上一篇冷月为大家分享的文件和目录处理测试要点。大家一定要根据自己的弱项查漏补缺,努力练习目录复制和删除功能。今天冷月就给大家分享一下sessioncontrol的测试要点。复习真题,简述cookie和session的区别,它们的工作机制,存储位置等。简述cookie的优缺点。答:COOKIE:在网站中,http请求是无状态的。也就是说,即使是第一次连接服务器并登录成功,第二次请求服务器仍然无法知道当前请求是哪个用户。cookies的出现就是为了解决这个问题。第一次登录后,服务器返回一些数据(cookie)给浏览器,然后浏览器保存在本地。当用户发送第二次请求时,会自动保存上次的数据。请求中保存的cookie数据会自动携带到服务器,服务器可以通过浏览器携带的数据判断哪个用户是当前用户。cookies中存储的数据量有限,不同的浏览器存储大小不同,但一般不超过4KB。因此,使用cookie只能存储少量数据。SESSION:session和cookie的作用有点类似,都是用来存储用户相关的信息。不同的是cookie保存在本地浏览器中,而session保存在服务器中。存储在服务器上的数据会更加安全,不易被窃取。但是存储在服务器上也有一定的缺点,就是会占用服务器的资源,但是现在服务器已经发展起来了,一些session信息已经绰绰有余了。cookie和session结合使用:web开发发展至今,已经有一些非常成熟的cookie和session结合使用的方案。在现在的市场或者企业中,一般有两种存储方式:1.服务器端存储:通过cookie存储一个session_id,然后在session中存储具体的数据。如果用户已经登录过,服务器会在cookie中保存一个session_id,下次再次请求时,会调出这个session_id,服务器会根据session库获取用户的session数据session_id。可以知道用户是谁以及之前保存的一些状态信息。这个技术术语称为服务器端会话。2.将session数据加密保存在cookie中。这个技术术语称为客户端会话。Flask使用的就是这种方式,不过也可以换成其他形式。考点分析PHP的会话控制技术COOKIE:cookies常用来识别用户。Cookie是服务器放置在用户计算机上的一个小文件。每次同一台计算机通过浏览器请求页面时,计算机都会发送cookie。使用PHP,您可以创建和检索cookie值。操作createcookiesetcookie(name,value,expire,path,domain);读取cookiePHP的$_COOKIE变量用于检索饼干的价值。删除cookie删除cookie时,应将过期日期改为过去的某个时间点.Session:PHP会话变量用于存储用户会话信息(session),或更改用户会话(session)设置。会话变量存储有关单个用户的信息,并且可用于应用程序中的所有页面。操作在PHP会话中存储用户信息之前,必须先启动该会话。session_start()函数StoringSession变量存储和获取session变量的正确方法是使用PHP$_SESSION变量:DestroySession如果你想要删除一些会话数据,可以使用unset()或session_destroy()函数。unset()函数用于释放指定的session变量:.auto_startphp.ini配置session.auto_start=0默认禁用,启用session.auto_start时session_start()自动完成。session.cookie.lifetimesession.cookie.lifetime默认为0,即浏览器关闭,session无效;修改这个值的作用是修改sessionid以cookie的形式在浏览器中保存的时间长度,也就是说这个值设置为一个小时。名为sessionid的cookie在浏览器中保存一小时,一小时后session失效;垃圾收集会话.gc_maxlifetime;设置session过期时间,默认1440秒(24分钟)session.gc_probability/session.gc_divisor;启动垃圾回收机制概率(推荐值为1/1000——5000)session_id()session_id—获取/设置当前会话IDsession_name()session_name—读取/设置会话名称,清理会话信息的存储方式,如何遍历session回答:session是Server端的一种机制,服务器使用类似哈希表的结构来存储信息,在PHP中直接使用$_SESSION数组遍历如果这篇博文对你有帮助,你可以给冷月点个赞或者加个关注哦!欢迎关注我的:冷月前辈,获取独家学习资源和每日干货推送。如果你对我的专题内容感兴趣,也可以关注我的博客:guoyu7.com