听的有点懵?

听的有点懵?

有几个问题,cookie是把用户的一些信息数据作为文件存在客户端里,然后http响应的时候发送给服务器,这样来识别用户身份的是吧?但是session到底是什么? session不是将生成的session ID 保存到cookie文件中吗? 然后通过sessionID定位到session文件? 那这个session文件是干嘛用的? 通过session服务器是如何得到用户的信息的呢?

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

你好,具体流程如下:

HTTP请求一个页面后,如果用到开启session,会去读cookie中的PHPSESSID是否有,如果没有,则会新生成一个session_id,先存入cookie中的PHPSESSID中,再生成一个sess_前缀文件。当有写入$_SESSION的时候,就会往sess_文件里序列化写入数据。当读取的session变量的时候,先会读取cookie中的PHPSESSID,获得session_id,然后再去找这个sess_sessionid文件,来获取对应的数据。由于默认的PHPSESSID是临时的会话,在浏览器关闭后,会消失,所以,我们重新访问的时候,会新生成session_id和sess_这个文件。

如果解决您的问题请采纳,祝学习愉快!

  • 雨之赞歌 提问者 #1
    谢谢老师,还有几个问题,seession_id是保存在cookie中的,也就是保存在浏览器中的吗?那我们可以像之前查看cookie一样查看这个id吗? 还有sess_文件是保存在服务器端的吗? session和cookie的区别是否就事session将用户数据保存在服务器端,而cookie保存在客户端内?
    2019-03-01 10:05:16
  • 雨之赞歌 提问者 #2
    还有关于cookie,当用户第一次请求了一个页面时,如果他的浏览器支持cookie,服务器会发送一个设置cookie的指令给浏览器,而这个指令就是通过setcookie函数发送的吗? 然后客户端会设置一个cookie存在客户端中,等再次请求时,会发送包含用户信息的cookie给服务器,直到cookie失效,才会停止会话,我不知道这样理解对不对
    2019-03-01 10:51:47
  • 雨之赞歌 提问者 #3
    还有关于会话,是否只要在cookie的有效期内,都算一次会话? cookie过期了,然后这个用户再次访问又重新设置cookie,这又算另一次会话了吗?
    2019-03-01 11:24:48
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
PHP小白零基础入门
  • 参与学习           人
  • 提交作业       626    份
  • 解答问题       4930    个

想要学好Web后端开发的中流砥柱语言,本阶段为你轻松铺就扎实的基础,从前端网页布局的搭建到后台PHP开发,助你从零基础到掌握主流开发语言。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师