语境:
一个字符串,当用户访问的时候会带到 URL 的参数中: http://xxxx?param=anystring
现在想要的就是当用户访问其他页面的时候,这个 param 参数也能保留下来,等到做某次操作使用。 浏览器关闭这个参数不需要保留
问题:
我是直接在服务端接收到这个参数,然后放到 session 中了。同事说不行,理由如下: 这个东西本身就是客户端功能,不需要保存到服务器再返回回去。直接存到 cookie 中
关于这个问题到底怎么做才会比较好?
1
zhouxuchen 2016-11-11 15:17:58 +08:00
试试用 sessionStorage
|
2
pubby 2016-11-11 15:22:19 +08:00 via Android
cookie
session 的话要看具体实现,如果用缓存实现的,可能在生命周期内被提前清除 |
3
shoaly 2016-11-11 15:36:22 +08:00
判断的标准是 这个 anystring 但不担心用户更改
如果不担心 可以储存到 cookie, 比如 登录框中 上次一次的用户名, 因为反正都会做登录验证的判断 有一些敏感的不能存, 通过 ?param=isvip, 用户当前是否允许操作 VIP 的功能, 这种需要放到 session |
4
66beta 2016-11-11 16:33:01 +08:00
纯前端自己用的参数,存 cookie
sessionStorage 只在当前 tab 有效 |
5
sutra 2016-11-11 17:02:58 +08:00
放 session 里会增加服务器负载均衡时的复杂度。
|
6
LichMscy 2016-11-11 17:16:07 +08:00
可以试试 localStorage ,关闭浏览器的时候 clear 掉
|
7
lightening 2016-11-11 17:23:38 +08:00
你用的是什么语言啊? Rails 里默认的 Session 就是用 Cookie 实现的。
|
8
billlee 2016-11-11 19:28:08 +08:00
不担心用户自己篡改的用 cookie, 否则用 session.
|
9
kkzxak47 2016-11-11 19:51:06 +08:00 via Android
你同事没错。
session 一般都是用 cookie 来实现的吧,你这个参数就是客户端记住的,传到服务器再传回来是在做无用功。 |
10
kkzxak47 2016-11-11 20:08:18 +08:00 via Android 1
服务器识别出客户端谁是谁,就是要客户端提供一个凭证,用这个凭证来找对应 session ,不论凭证具体实现是 cookie 还是 local storage 还是客户指纹等等。
你说的这个参数和这个 session 凭据一样,一直是客户端负责存储,既然不需要用它从服务器取数据,传回服务器就没有意义。 |
11
Lpl OP 多谢各位解惑,我回去修改下代码。
|