cookie和会话状态的工作原理
一:存在两种类型的cookie:
1>会话cookie (session cookie)
不设置过期时间,则表示这个cookie生命周期为浏览器会话期间,只要关闭浏览器窗口, cookie就消失了。
生命期为浏览器会话期。
一般不保存在硬盘上而是保存在内存里。
2>持久性cookie (persistent cookies)
设置了过期时间,浏览器就会把cookie保存到硬盘上,关闭后再次打开浏览器,这些cookie依然有效直到超过设定的过期时间。
保存在用户硬盘上面,同一浏览器可以获取。
二: session相关知识
2.1: 什么是session?
Session 是一种保存上下文信息的机制,它是针对每一个用户的,变量的值保存在服务器端,通过sessionid来区分不同的客户,session是以cookie或url重 写为基础.
2.2: session 的工作原理
client———>1.request————————->server
2. session_start();
|<————-3.reponse(SESSION_ID)<——–|
|————->4.request(SESSION_ID)———>|
5. session_start();
|<————-6.reponse(SESSION_ID)<———|
|————->7. request(SESSION_ID + logout)–>|
8. session_destroy();
|<————-9. reponse(删除cookie文件)<——-|
- client打开网页,向server发出请求,client上由于没有相应的cookie文件存在,在请求中不输送SESSION_ID
- 服务器在接受到client的请求后,通过执行session_start()函数开始进行session的处理, 首先确认请求中有没有SESSION_ID,如果没有的话,发行一个新的SESSION_ID;如果有的话, 则调用那个存有SESSION_ID的文件,并把信息写入$_SESSION里去,并存入以sess_开头的文件里。
- 把写入信息的$_SESSION参数发回给client,client在GET服务器发来的信息后,把这些信息保存在cookie里。
- client把cookie里的SESSION_ID一起写入header后再次向server发出请求。重复1-3的操作
- client发出登出请求
- 服务器接受请求后,通过执行session_destroy()函数开始删除session文件处理
- 服务器向client发出删除保存在client上的cookie文件的命令: setcookie(session_name(), ”, time()-60, ‘/’);
2.3: 注意
- 通常情况下是不能跨窗口使用,但用sessionid保存在持久cookie中,然后在从新窗口中读取,就可以得到sessionid,实现跨窗口的使用.
- 在大浏览量的网站,session并不保险,可能会出现重复的sessionid.
- Session ID不能从硬盘上的Cookie文件获得,如果想在客户端获知自己的Session ID,只能通过Javascrīpt来读取。
2.4 php使用及设置
Session_start() :开始一个会话或者返回已经存在的会话。在使用Session_start()之前浏览器不能有任何输出,否则会发生以下错误。你可以在php.ini里 启动session.auto_start=1,这样就无需每次使用session之前都要调用session_start()。
如果在session.auto_start=1,会让session_save_path (‘./t/’);变的无效。因为后一条语句须放前面。
2.5 增加PHP的Session存储和处理能力
;session.save_path = “N;MODE;/path” 这项设置提供给我们可以给session存放目录进行多级散列,其中“N”表示要设置的目录级数,
“MODE”表示目录的权限属性,默认为600
2.6:多服务器共享php的SESSION
1、NFS或者Samba共享的方法,让各个服务器上存放session文件的磁盘共享,这种方法简单可行。
2、集中存储到数据库中,这是比较多的实现方法,通过php提供的session_set_save_handler()函数来重定义session函数,推荐使用这种方法。
三: cookie知识
什么是 Cookie?其工作原理如何?Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时,Web 应用程序都可以读取 Cookie 包含的信息。 Cookie 的基本工作原理如果用户再次访问站点上的页面,当该用户输入 URLwww.*****.com时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到您的站点。Cookie 有哪些用途?最根本的用途是:Cookie 能够帮助 Web 站点保存有关访问者的信息。更概括地说,Cookie 是一种保持Web 应用程序连续性(即执行“状态管理”)的方法.使 Web 站点记住您.
你对人生迷茫吗?
那就背起行囊,起步远行吧