今天咱们来聊聊 cookie

最近在 YouTube 上面,看到了关于 cookies 的一个视频,觉得例子举得不错,于是就来献献丑(全英文,听着听着就懵逼了,这到底在说啥呢!!)

例子就是我们日常生活中非常熟悉的星马克喝咖啡

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

  1. 我喜欢咖啡,或者你也喜欢咖啡。

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

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

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

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

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

能让星巴克记住我最喜欢喝的 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,还会存储与本次会话相关的一些其它信息。

好啦!分享完毕。小伙伴们,你们看懂了吗?

1 操作
xiaojian 在 2020-08-07 10:17:27 更新了该帖
回帖
请输入回帖内容 ...