php会话是如何产生的?
session是在服务器端保存用户会话数据的方法,对应的cookie是在客户端保存用户数据。HTTP是一种无状态协议。服务器响应后,与浏览器失去联系。最初,Netscape在浏览器中引入了cookie,这样客户就可以跨页面交换数据。那么服务器是如何记住众多用户的会话数据的呢?首先,要在客户机和服务器之间建立一对一的连接,每个客户机必须有一个惟一的标识符,以便服务器能够识别它。有两种方法建议唯一标识:cookie或GET。默认PHP使用session时,会创建一个名为“PHPSESSID”的cookie(可以通过修改php.ini中session.name的值来指定)。如果客户端禁用cookies,还可以通过GET(修改php.ini中的session.use_trans_sid等参数)指定将会话id传输给服务器。我们在查看服务器端session.save_path目录时,会发现很多类似SESS _ vv 9 lpgf 0 nmkurgvkba 1 vbvj 915这样的文件,其实就是session ID“vv 9 lpgf 0 nmkurgvkba 1 vbvj 915”对应的数据。事实是这样的。客户端将会话id发送给服务器,服务器根据会话id找到对应的文件。读取时,它反序列化文件内容以获取会话的值,保存时,它在写入前序列化。事实就是这样,所以如果服务器不支持session或者你想自定义session,你可以自己动手,通过PHP中的uniqid生成永不重复的session id,然后找个地方存储session的内容。还可以学习flickr在MySQL数据库中存储会话。php会话是如何产生的?
session文件的命名规则?
session文件的命名格式是:”sess_”。每一个文件,里面保存了一个会话的数据。其实只要使用代码session_start();$_SESSION = $value;就会促发php的session机制,结果往对应的session文件中写入一个值。