Day28【Web】网页的号码牌:Cookie

无状态的 HTTP

浏览网页常用的 HTTP(超文本传输协定)
是一种无状态协定
也就是收到请求就建立连结,
请求完後就断开连结将资源释放出来。

HTTP 只看请求的内容,
而不纪录客户端的「状态」,
从任何客户端发来的请求都一视同仁,
仅做出对请求对应的回覆。


纪录使用者样态的 Cookie

随着网路交互活动变得复杂,
客户端需要与服务器保持长期连线与互动,
程序设计师 Lou Montulli
在 1993 年发明了「cookie」,
也就是一小段纪录客户端状态的文字档案。

这段资讯会在客户拜访网站时由服务器产生发送,
并由收到的浏览器负责储存起来,
以便下次拜访网站时使用。

cookie 就像号码牌或置物柜钥匙,
是一个验证身分的标志,
有了这个 cookie,
我们就能在下次拜访同样网站时,
取得 cookie 上纪录所对应的内容。

cookie 不但能让我们取得客制化讯息,
更可以提高网站的访问速度、
减少需要人工填写的栏位,
为网站互动提供更多便利性。

不过随着网路技术发展,
cookie 也渐渐带来危害与滥用,
导致个人隐私外泄、
大量垃圾讯息等问题。

各浏览器与服务器平台
目前也都在加强 cookie 安全性,
如使用签章过的 Signed Cookie
或尝试寻找比 cookie 更好的替代方案。


cookie 的组成

cookie 内包含以下属性

  • name=value(必要)
    • 使用 cookie 时可用 name 来获取对应的 value 内容,name 和 value 皆为纯文字,若包含特殊字元时必须使用跳脱字元(Escape Character)换成对应字码。
  • expires=date(选项)
    • cookie 的有效期限,预设值为浏览器结束执行的同时到期。
  • path=path(选项)
    • 设定可读取 cookie 的(最上层)目录,预设值为建立该 cookie 的网页目录及其子目录。
  • domain=domain(选项)
    • 设定可读取 cookie 的网域,预设为仅能由设定该 cookie 的网页站台读取。
  • secure(选项)
    • 设定是否用加密的方式来传输 cookie,预设使用无加密的 HTTP。

参考资料:


<<:  【Day 28】Hook 08:useCallback

>>:  Day 30 没credit也要把隐私规划做好

CDB(集中式) 是什麽? DDB(分散式)是什麽?

分散资料库(Distributed Database, DDB) VS 集中式资料库(Central...

Day12:内建的 suspend 函式,好函式不用吗?(1)

Coroutine 的三大要素不知道大家还记得吗?CoroutineScope、Suspend fu...

30天轻松学会unity自制游戏-开启死亡画面

先来制作死亡後开启死亡画面,把之前死亡画面的Active(开启)暂时先关闭,等Player死亡时候才...

DAY04随机森林演算法(续1)

昨天,我们把基尼系数算完,那今天,我打算建立bagging算法函数: 对於有n个资料的资料集,我们取...

[神经机器翻译理论与实作] 这个翻译不大正经

前言 也许你会觉得,这个标题下得很神经。没错!因为今天要正式进入新的主题-神经机器翻译。我们今天将会...