用 cookie 还是用 session ?

2016-11-11 15:15:58 +08:00
 Lpl

语境:

一个字符串,当用户访问的时候会带到 URL 的参数中: http://xxxx?param=anystring

现在想要的就是当用户访问其他页面的时候,这个 param 参数也能保留下来,等到做某次操作使用。 浏览器关闭这个参数不需要保留

问题:

我是直接在服务端接收到这个参数,然后放到 session 中了。同事说不行,理由如下: 这个东西本身就是客户端功能,不需要保存到服务器再返回回去。直接存到 cookie 中

关于这个问题到底怎么做才会比较好?

2037 次点击
所在节点    问与答
11 条回复
zhouxuchen
2016-11-11 15:17:58 +08:00
试试用 sessionStorage
pubby
2016-11-11 15:22:19 +08:00
cookie

session 的话要看具体实现,如果用缓存实现的,可能在生命周期内被提前清除
shoaly
2016-11-11 15:36:22 +08:00
判断的标准是 这个 anystring 但不担心用户更改
如果不担心 可以储存到 cookie, 比如 登录框中 上次一次的用户名, 因为反正都会做登录验证的判断
有一些敏感的不能存, 通过 ?param=isvip, 用户当前是否允许操作 VIP 的功能, 这种需要放到 session
66beta
2016-11-11 16:33:01 +08:00
纯前端自己用的参数,存 cookie
sessionStorage 只在当前 tab 有效
sutra
2016-11-11 17:02:58 +08:00
放 session 里会增加服务器负载均衡时的复杂度。
LichMscy
2016-11-11 17:16:07 +08:00
可以试试 localStorage ,关闭浏览器的时候 clear 掉
lightening
2016-11-11 17:23:38 +08:00
你用的是什么语言啊? Rails 里默认的 Session 就是用 Cookie 实现的。
billlee
2016-11-11 19:28:08 +08:00
不担心用户自己篡改的用 cookie, 否则用 session.
kkzxak47
2016-11-11 19:51:06 +08:00
你同事没错。
session 一般都是用 cookie 来实现的吧,你这个参数就是客户端记住的,传到服务器再传回来是在做无用功。
kkzxak47
2016-11-11 20:08:18 +08:00
服务器识别出客户端谁是谁,就是要客户端提供一个凭证,用这个凭证来找对应 session ,不论凭证具体实现是 cookie 还是 local storage 还是客户指纹等等。
你说的这个参数和这个 session 凭据一样,一直是客户端负责存储,既然不需要用它从服务器取数据,传回服务器就没有意义。
Lpl
2016-11-11 22:47:00 +08:00
多谢各位解惑,我回去修改下代码。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/319836

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX