Session的工作方式
程序员文章站
2022-03-31 12:33:57
下面我们来看一下session是如何工作的。不知你是否知道通过cookie来实现身份认证的吧。首先生成一个独一无二的cookie作为用户身份的标志,并在数据库中进行注册。然...
下面我们来看一下session是如何工作的。不知你是否知道通过cookie来实现身份认证的吧。首先生成一个独一无二的cookie作为用户身份的标志,并在数据库中进行注册。然后通过用户传递来的cookie和数据库中注册的cookie进行对照以确定用户的身份。
session的工作原理也是这样。
首先,php为建立session的用户产生一个独一无二的字符串,用来标志这个用户的session。一般将这个字符串称作session id。然后“sess”+session id为文件名(例如一个session id为111,那么文件名为sess_111)在服务器的文件系统中建立一个文件,在文件中保存用户在session所定义的全局变量的变量名和值。然后再将session id作为一个名为phpsession的cookie保存在用户端的文件系统中。
然后,当用户再次连接服务器访问一个php脚本时,php从用户发来的peesession这个cookie中得到用户所在session的session id,并根据session id从服务器的文件系统中保存session信息的文件。最后从这个文件中读出用户在上次连接时所设置的全局变量的值。
因此,我们可以看到session的工作原理和我们上一节所介绍的身份认证的工作原理是一样的。所不同的只是session将信息保存在了服务器的文件系统中,而我们将信息保存在了数据库中。当然使用session好处就是数据的保存和获取是由php自动完成的,而直接使用cookie的话就需要自己动手进行数据的保存和获取。
session利用cookie的身份标志功能,将用户在浏览网站时需要保存的信息保存在服务器上。这样session既克服了http协议的缺陷,又防止了信息的泄漏,而且方便了编程者的使用,是一个非常好的解决方案。不过,session的功能只有php4支持,php3是不支持session的。因此使用php3进行网站构建的读者只能采用直接使用cookie的方式。
session的工作原理也是这样。
首先,php为建立session的用户产生一个独一无二的字符串,用来标志这个用户的session。一般将这个字符串称作session id。然后“sess”+session id为文件名(例如一个session id为111,那么文件名为sess_111)在服务器的文件系统中建立一个文件,在文件中保存用户在session所定义的全局变量的变量名和值。然后再将session id作为一个名为phpsession的cookie保存在用户端的文件系统中。
然后,当用户再次连接服务器访问一个php脚本时,php从用户发来的peesession这个cookie中得到用户所在session的session id,并根据session id从服务器的文件系统中保存session信息的文件。最后从这个文件中读出用户在上次连接时所设置的全局变量的值。
因此,我们可以看到session的工作原理和我们上一节所介绍的身份认证的工作原理是一样的。所不同的只是session将信息保存在了服务器的文件系统中,而我们将信息保存在了数据库中。当然使用session好处就是数据的保存和获取是由php自动完成的,而直接使用cookie的话就需要自己动手进行数据的保存和获取。
session利用cookie的身份标志功能,将用户在浏览网站时需要保存的信息保存在服务器上。这样session既克服了http协议的缺陷,又防止了信息的泄漏,而且方便了编程者的使用,是一个非常好的解决方案。不过,session的功能只有php4支持,php3是不支持session的。因此使用php3进行网站构建的读者只能采用直接使用cookie的方式。
上一篇: QQ浏览器上线新功能:在家就能逛博物馆
下一篇: 建立动态的WML站点(一)