记得在以前找工作的时候,可多次被问到如果客户端被禁用cookie,session还能使用吗?

 

今天终于找到了相关的答案:我们来看一下:

session是在服务器段保持会话数据的一种方法,对应的cookie是在客户端保存用户的数据,http协议是一种无状态的协议,服务器响应完之后就失去了与浏览器的联系,最早netscape将cookie引入浏览器,使得数据可以客户端跨页面交换,那服务器如何记住众多用户的会话数据呢?

首先要将客户端和服务端建立一一的联系,每个客户端都得有一个唯一的表示,这样的话服务器才能识别出来。建议唯一标识的方法有两种:cookie或者get的方式制定。

 

默认配置的PHP使用session的时候会建立一个名叫“PHPSESSID”的cookie(这个名称可以通过php.ini中的session.name值指定)

如果客户端禁用cookie,那我们可以通过指定的GET方式将这个session id传到服务器端(修改一下php.ini中的session.use_trans_sid等参数)。

<a href="p.php?<?php print session_name()?>=<?php print session_id()?>">xxx</a>,那也可以通过POST的方式传递session值

posted on 2015-07-17 17:32  shangzekai  阅读(799)  评论(0编辑  收藏  举报