1、cookie,session是一种技术手段,token是一种具体的应用场景。
2、cookie和session没有什么根本的不同。就目的来说,都是为了解决HTTP1.1无状态的属性。
不管是谁,是第几次访问服务器,HTTP请求本身是不知道你是谁的,所以服务器就无从判断谁来做的请求,你有什么信息。你在北京,淘宝上加个购物车,加到天津的一个人身上了,然后天津的人付了钱,邮递到东三省了,东北的哥们儿还是很懵的,我一爷们儿,买个裙子干嘛?随缘终究不靠谱。
所以就出现了cookie,每次访问的时候都携带cookie信息。比如带个userid,你来了,服务器就知道你的信息了。但是明文写的,别人知道了怎么搞?所以就有了session。
想起刚从培训班出来的时候,面试官问session和cookie区别,问就是session更安全,感觉自己还是很萌的,不能说不对,只是有点片面。session也是基于cookie的,使用session的时候,要在用户端存一个叫做sessionid的cookie啊,只不过那个东西一般人看不懂,到了服务器,服务器拿着sessionid找到存在服务器的信息,就完成了。
服务器根据cookie搞一个session,我们仿照这个东西可以吗?没问题啊。我们也存个cookie,随便编一个66位的不规则字符串,任谁都编不出来的那种,然后在服务器存一条信息,存到mysql很好,存到redis也不错,存文件也没毛病,反正你自己开心就好,然后请求来了,拿着cookie去找信息,妥了。
那这个cookie叫啥?随意啊,狗剩不好听,翠花接地气,不符合高新企业的身份,就叫token吧!token有了。
所以归根结底,cookie就是为了解决HTTP1.1无状态的。那我不用cookie,我放到header头里面行不行?
凭啥不行!
网友评论