-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
初次接触 Cookie #20
Comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
什么是 Cookie
Cookie(复数形态Cookies),中文名称为“小型文本文件”或“小甜饼”,指某些网站为了辨别用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。
这是维基百科对 Cookie 的词条解释,由此我们可以知道,Cookie 其实是一个储存在本地的一个小文件。
Cookie 的起源
早期 Web 开发面临的最大问题之一是如何管理状态。简言之,服务器端没有办法知道两个请求是否来自于同一个浏览器。那时的办法是在请求的页面中插入一个
token
,并且在下一次请求中将这个token
返回(至服务器)。这就需要在form
中插入一个包含token
的隐藏表单域,或着在URL
的qurey
字符串中传递该token
。这两种办法都强调手工操作并且极易出错。Lou Montulli
,那时是网景通讯的一个雇员,被认为在1994年将 “magic cookies” 的概念应用到了 Web 通讯中。他意图解决的是 Web 中的购物车,现在所有购物网站都依赖购物车。他的最早的说明文档提供了一些 Cookies 工作原理的基本信息该文档在 RFC2109 中被规范化(这是所有浏览器实现 Cookies 的参考依据),并且最终逐步形成了REF2965。Montulli 最终也被授予了关于 Cookies 的美国专利。网景浏览器在它的第一个版本中就开始支持 Cookies,并且当前所有 Web 浏览器都支持 Cookies。Cookie 的特点
除了这些特点之外,还有
如何设置 Cookie
语法
在 Cookie 的设置中,后面的选项是可选的,且可同时多选。
用法
当我们模拟登陆时,就可以看到响应头里面的 Cookie
同样,在跳转网站请求头中也可以看到这个 Cookie
如果没有设置不允许修改 Cookie 的话,是可以利用 JavaScript 来修改 Cookie
此时刷新页面看看
此时可以看到,Cookie 被 JavaScript 修改了
但可以通过设置禁止 JavaScript 来修改 Cookie
这样就无法通过 JavaScript 来修改 Cookie
但是还是可以手动地来修改
再刷新页面看看
Cookie是可以人为地伪造地,所以说 Cookie 是不安全的
设置过期时间
可以通过 Cookie 的以下属性来设置过期时间。
Expires
指定了一个日期/时间, 在这个日期/时间之后 Cookie 过期max-age
指定了一个秒数,经过此秒数后 Cookie 过期如果不设置这个标头,则默认关闭浏览器后 Cookie 过期
删除 Cookie
有多种方式来删除 Cookie。
服务器可以通过
Expires
、max-age
这两个标签将� Cookie 设置成过期的状态,之后浏览器会自动清除JavaScript 可以通过
document.cookie
来操作 Cookie 删除可以通过浏览器手动删除
后话
我也是接触 Cookie 不久,对其还不是很熟悉,还有很多地方值得去探讨
The text was updated successfully, but these errors were encountered: