原文地址:https://t.ti-node.com/thread/...这基本是老话题了。几乎所有的phper在第一次面试时,都会被问及session。如果不出意外,往往就是以下三招:什么是phpsession,phpsession存在于什么地方,phpsession和cookie过期有什么区别?这三个问题可以称为phpsession的三个基本问题。如果掌握不好,会直接导致面试失败,尴尬。简单回顾一下以上三个问题:session翻译成中文大概就是一次对话。我们知道http协议是一个无状态的协议。用极其粗鲁的方言来表达无状态就是“你不知道这个http请求是哪头小牛发起的”或者“你永远不知道这个http请求的哪一端在互联网上”。上次的哈士奇还是上次的胖子”,所以为了解决这个问题,php引入了session来额外标记“谁发起了这个http请求”。在php中,php会为每个不同的用户生成一个随机的sessionid,每个人都有不同的sessionid,在用户和服务器的每一次交互中,用户都是通过sessionid来标识的,PHP生成session非常简单,直接调用session_start()函数即可,如下所示下图是生成的session文件:其中sess是文件前缀,后面的"njjf8l3lh**ff6"是你的sessionid。但是现在session文件的内容是空的,如果我们使用下面的代码,就可以生成session文件的内容:
