Lpl
V2EX  ›  问与答

用 cookie 还是用 session ?

  •  
  •   Lpl · Nov 11, 2016 · 2446 views
    This topic created in 3491 days ago, the information mentioned may be changed or developed.

    语境:

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

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

    问题:

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

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

    11 replies    2016-11-11 22:47:00 +08:00
    zhouxuchen
        1
    zhouxuchen  
       Nov 11, 2016
    试试用 sessionStorage
    pubby
        2
    pubby  
       Nov 11, 2016 via Android
    cookie

    session 的话要看具体实现,如果用缓存实现的,可能在生命周期内被提前清除
    shoaly
        3
    shoaly  
       Nov 11, 2016
    判断的标准是 这个 anystring 但不担心用户更改
    如果不担心 可以储存到 cookie, 比如 登录框中 上次一次的用户名, 因为反正都会做登录验证的判断
    有一些敏感的不能存, 通过 ?param=isvip, 用户当前是否允许操作 VIP 的功能, 这种需要放到 session
    66beta
        4
    66beta  
       Nov 11, 2016
    纯前端自己用的参数,存 cookie
    sessionStorage 只在当前 tab 有效
    sutra
        5
    sutra  
       Nov 11, 2016
    放 session 里会增加服务器负载均衡时的复杂度。
    LichMscy
        6
    LichMscy  
       Nov 11, 2016
    可以试试 localStorage ,关闭浏览器的时候 clear 掉
    lightening
        7
    lightening  
       Nov 11, 2016
    你用的是什么语言啊? Rails 里默认的 Session 就是用 Cookie 实现的。
    billlee
        8
    billlee  
       Nov 11, 2016
    不担心用户自己篡改的用 cookie, 否则用 session.
    kkzxak47
        9
    kkzxak47  
       Nov 11, 2016 via Android
    你同事没错。
    session 一般都是用 cookie 来实现的吧,你这个参数就是客户端记住的,传到服务器再传回来是在做无用功。
    kkzxak47
        10
    kkzxak47  
       Nov 11, 2016 via Android   ❤️ 1
    服务器识别出客户端谁是谁,就是要客户端提供一个凭证,用这个凭证来找对应 session ,不论凭证具体实现是 cookie 还是 local storage 还是客户指纹等等。
    你说的这个参数和这个 session 凭据一样,一直是客户端负责存储,既然不需要用它从服务器取数据,传回服务器就没有意义。
    Lpl
        11
    Lpl  
    OP
       Nov 11, 2016 via Android
    多谢各位解惑,我回去修改下代码。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3274 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 109ms · UTC 13:15 · PVG 21:15 · LAX 06:15 · JFK 09:15
    ♥ Do have faith in what you're doing.