Session的工作方式

2016-01-29 15:11 3 1 收藏

Session的工作方式,Session的工作方式

【 tulaoshi.com - PHP 】

  下面我们来看一下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的方式。 

来源:https://www.tulaoshi.com/n/20160129/1495451.html

延伸阅读
标签: Web开发
下面是全部代码,已经编译通过。 Chuandi(传递)是名字空间 WebForm1: %@ Page language="c#" Codebehind="WebForm1.aspx.cs" Inherits="chuandi.WebForm1" % HTML  HEAD   titleWebForm1/title  /HEAD  body   form id="Form1" method="post" runat="server"    asp:TextBox id="TextBox1" runat="serve...
标签: PHP
在很多时候,我们需要跟踪浏览者在整个网站的活动,对他们身份进行自动或半自动的识别(也就是平时常说的网站登陆之类的功能),这时候,我们常采用一组变量来追随访客。实现变量追随有很多种方法,比较用得多的是cookie和session。下面我们用时下很流行的PHP为大家讲解一下它们的使用。 一.Cookie的使用   Cookie是...
标签: Web开发
破解Session cookie的方法 所謂的 session cookie, 就是站台在你登錄成功後, 送上一個 cookie,表示你已經通過驗證,但與一般cookie 不同的是,他並不會存在你的硬碟上,也就是說: 在你離開瀏覽器之後,就會消失,也就是意味:下次你重開 瀏覽器,再進此站,此 cookie 已經不見了。 那麼,要怎麼讓這個 cookie 永遠有效呢?說永遠太久了 我...
标签: PHP
  什么是Session呢?Session直接翻译成中文比较困难,一般都译成时域。在计算机专业术语中,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间。具体到Web中的Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时...
标签: Web开发
代码如下: package cn.lang.any.listener; import java.util.*; import javax.servlet.*; import javax.servlet.http.*; public class AmpList implements ServletContextListener,HttpSessionListener,HttpSessionAttributeListener { private ServletContext application=null; public void contextInitialized(ServletContextEvent...

经验教程

221

收藏

7
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部