【No.1】基于Cookie的单点登录(SSO)

这篇主要说明基于Cookie的单点登录实现,以及Cookie的一些特性以及使用说明。

1、Cookie是什么,如何工作的

      在程序中,会话跟踪是很重要的事情。理论上, 一个用户的所有请求操作都应该属于同一个会话,而另一个用户的所有请求操作则应该属于另一个会话,二者不能混淆。例如,用户A在超市购买的任何商品都应该放在A的购物车内,不论是用户A什么时间购买的,这都是属于同一个会话的,不能放入用户B或用户C的购物车内,这不属于同一个会话。而 Web应用程序是使用HTTP协议传输数据的。HTTP协议是无状态的协议。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这就意味着服务器无法从连接上跟踪会话。即用户A购买了一件商品放入购物车内,当再次购买商品时服务器已经无法判断该购买行为是属于用户A的会话还是用户B的会话了。要跟踪该会话,必须引入一种机制。
      Cookie就是这样的一种机制。它可以弥补HTTP协议无状态的不足。在Session出现之前,基本上所有的网站都采用Cookie来跟踪会话。
      Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、Netscape、Firefox、Opera等都支持Cookie。

2、现实生活中类似于Cookie的举例

      例如你所在的城市可能有很多便利店(web服务器),便利店一般都会举行一些活动,例如积满15次消费金额在20元以上,送毛绒公仔一只。但是客户(浏览器)特别多,便利店不可能每个都记住,于是便利店就制作一个卡片(Cookie)交给客户。之后每次客户来买东西的人时候就把卡片提交给便利店(web服务器),于是便利店就知道你目前的状态信息,这样就做到了跟踪会话。
      从上面可以看出,Cookie是由浏览器管理的,web服务器将数据交给浏览器,浏览器可以把数据保存起来,等到下次访问的时候自动提交。
      
如上图中,在整个交互中的流程如下:
      第一步:浏览器发送信息(例如:用户名密码)提交给服务器。
      第二步:服务器接收到之后,发送一个命令给浏览器,告诉他你要把相关的信息存到cookie里面。
      第三步:如果是零时性的就存于浏览器内存中,重启浏览器信息就消失了。
      第四步:如果是需要存很久,例如两周之内自动登陆这种需求,则将信息存于硬盘上。
      第五步:当在此访问浏览器时,则自动将cookie发送给服务器。

3、各浏览器都把Cookie放到了哪里

以Windows7为例:
      IE浏览器:%APPDATA%\Microsoft\Windows\Cookies\ 目录中的xxx.txt文件 (IE浏览器分开存放的)。
      火狐浏览器:%APPDATA%\Mozilla\Firefox\Profiles\ 目录中的xxx.default目录,名为cookies.sqlite的文件。
  • 7
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值