谈谈 cookies

本贴最后更新于 1370 天前,其中的信息可能已经时过境迁

最近在YouTube上面,看到了关于cookies的一个视频,觉得例子举得不错,于是就来献献丑(全英文,听着听着就懵逼了,这到底在说啥呢!!)
例子就是我们日常生活中非常熟悉的星巴克喝咖啡

大意如下(简单粗暴的翻译,见谅):

我喜欢咖啡,或者你也喜欢咖啡。
我平均每两个星期去一次星巴克:查看菜单、选择咖啡、拿到咖啡、付钱。

如果我三天之后再去星巴克,店员不知道我是谁,也不知道我什么时候来过这里,点过什么咖啡。仍然是按照上面的流程喝咖啡。

这种情况下,我和星巴克之间是无状态的。

现在,如何设计一个系统,能够让星巴克和我之间有状态的?

也就是星巴克能够记得我上一次来喝咖啡是什么什么时候?

能让星巴克记住我最喜欢喝的10种咖啡饮品?

那就是星巴克会员卡。这种会员卡就像我们的session和cookies.

星巴克的会员卡有两个作用:
1、对于星巴克来说,这是你这个用户的身份ID。

 你进入星巴克店后,通过这张卡,星巴克知道你上一次来来店里的时间,知道你最喜欢喝的10种咖啡饮品,获取你所有在星巴克的消费记录。

2、对于你来说,这是你随身带着,进入星巴克的身份识别。

对于软件系统来说:
web浏览器 就相当于 你

web服务器 就相当于 星巴克

image.png

**会员卡用来建立你和星巴克之间的联系,

cookies用来建立web浏览器和web服务器之间的联系。**

以上简要的解释了cookies.那么cookies从何而来?

你在星巴克第一次建立会员关系时,你需要向星巴克提供你的相关信息,星巴克才能够生成一张ID卡给你。

同样,第一次与web服务器建立关系时,也需要向服务器提供你的信息。在这里,就是用户的权限帐号和密码了。

所以我们需要通用用户名和密码信息的提交,来获取服务器给我们提供的cookies.

然后在后续的获取用户其它信息的请求中,带上cookies。(神马是http请求,请自行度娘)

所以cookie是由服务器返回给客户端的

我们在平时在登陆一个网站后,长时间不操作,再次去操作就会自动跳出重新登录的提示,为神马?

因为。。cookie也是有有效期的

长时间不与服务端交流交流,人家就忘了你啦。。所以,需要你重新提供身份证明。

当然了,cookie不止存储了我们这里讲的身份id,还会存储与本次会话相关的一些其它信息。

11 回帖
请输入回帖内容 ...