Twitter 今天即将飞回广州00:42夜已深,刚写完日记 杭州 释然 回味 “我会回来滴”灰大狼
 PHPma >> Php > Session使用方法,非要基于Cookie吗?

Cookie机制采用的是在客户端保持状态滴,而一般来说Session机制采用的是一种在客户端与服务器之间保持状态的机制。

 曾经以为,Session非要基于Cookie的,不然就无法运行,其实这是一个非常大的误解!Cookie保存在客户端、Session保存在服务器端没有错。错就在于,Session要跟客户端进行通信时,需要有一个ID,此ID默认的情况下都是自动生成,并保存在Cookie中,所以这个就给人造成了错觉,以为非要基于Cookie而运行。

这好比,习惯了写PHP程序的人;在混合用别的语言(比如js)开发时,总是忘记先要声明变量再使用变量一样!既然Session是靠一个session_id来保持通讯的,那么这就给了程序员多种解决方案啦!phpma.com

A.默认方式可以采用cookie,这样在交互过程中浏览器可以自动的按照规则把这个标识发送给服务器。

 B.由于cookie可以被人为的禁止,必须有其它的机制以便在cookie被禁止时仍然能够把session_id传递回服务器,经常采用的一种 技术叫做URL重写,就是把session_id附加在URL路径的后面,附加的方式也有两种,一种是作为URL路径的附加信息,另一种是作为 查询字符串附加在URL后面。网络在整个交互过程中始终保持状态,就必须在每个客户端可能请求的路径后面都包含这个session_id。

C.另一种技术叫做表单隐藏字段。就是服务器会自动修改表单,添加一个隐藏字段,以便在表单提交时能够把session_id传递回服务器。

其中,A方案使用最多也最为广泛的,而B方案在移动互联网,特别是现在的WAP中非常的流行,因为手机浏览器不能够保存Cookie,程序就喜欢通过URL重写来达到用户登录不至于访问下一个页面时就退出了登陆状态!C方案不建议、更不推荐使用。51ruan.com

Session跟Cookie其实挺有意思的,有空就多研究下!

                            /**
                             ** 温馨提示:本站所有文章均来自PHPma精心编辑,99%原创,转帖之人需保留本站的链接
                             ** 本站所有文章仅代表本人观点,转帖概不负责
                             ** 作者:PHPma
                             **/
                        

About PHPma

PHPma一个主要关注PHP技术为主的技术杂烩站点

一个在PHP技术圈子里面活跃D虾米,分享一个草根IT程序员D劳动成果,亦是此草根IT程序员发泄的场所。

Email:phpmacom@gmail.com

网站分类

copyright 2010 - 2012, 版权所有  All Rights Reserved