jfinal cookie 代替 session

莫莫水心 发布于 2013/05/15 22:47
阅读 4K+
收藏 10

@JFinal 你好,想跟你请教个问题:波总,看到你在有个cookie代替session方案里边回答用sessionIdKit,有啥具体方案没有,我不太清楚整个实现方案的,能讲讲么,tks

加载中
1
JFinal
JFinal

大致的方式:

1:用户登录成功后,为其生成一个全球唯一的标识,并存入此用户的 cookie中,此唯一标识唯一对应着某一个用户

2:将生成的全球唯一标识在服务端也存放一份,可以存放在一个中心的缓存服务中,也可以存中心数据库中,此标识在服务端设置一个过期时间

3:客户端每次请求都会将cookie与请求一起传送到服务端,服务端通过标识去缓存或数据库中找这个标识,如果找到就证明是合法登录用户

1
南湖船老大
南湖船老大
建议cookie+memcached 实现
1
a
alvinte

1、cookie和session本质是完全不沾边的两个东西,相互没有“可替代性”可言。cookie是客户端数据存储的一种方案,(还有其他方案,比如某些移动端不支持cookie可以用直接传递参数的方案);而session是服务端存储数据的一种方案,(其他方案更多了,数据库,分布式缓存等)。

2、session-cookie本来就是全部解决方案之中的组合之一,也是最常用的一种,也就是说session本身就依赖cookie实现,session端对客户数据做了映射,cookie端保存了这个映射的key(jsessionId)。

3、所谓cookie替代session的方案,是指最简单的session对服务端有依赖性,说白了就是非分布式的,无法多个服务之间共享数据,也就失去了集群部署的特性,所以需要改善。

了解了原理,你就明白何为“cookie替代session”了。

0
莫莫水心
莫莫水心
谢谢众大大们的回答,听君一席话,胜读十年书,了解了
0
我为人人
我为人人
全球唯一,听起来好厉害的样子
0
Jahon
Jahon

引用来自“JFinal”的答案

大致的方式:

1:用户登录成功后,为其生成一个全球唯一的标识,并存入此用户的 cookie中,此唯一标识唯一对应着某一个用户

2:将生成的全球唯一标识在服务端也存放一份,可以存放在一个中心的缓存服务中,也可以存中心数据库中,此标识在服务端设置一个过期时间

3:客户端每次请求都会将cookie与请求一起传送到服务端,服务端通过标识去缓存或数据库中找这个标识,如果找到就证明是合法登录用户

客户端 cookie 被禁止 怎么破 这样的话 问题就大了 .
写下带不走的风
写下带不走的风
不考虑比较好,要说人为因素,那还有很多呢
0
一枚假程序猿
一枚假程序猿
setCookie 和 getCookie 存不进去值也获取不到值
返回顶部
顶部