2.5 Cookie

Cookie

HTTP是无状态的,这样做虽然简化了服务器的设计,但在实际工作中,一些万维网站点却常常希望能够识别用户;

例如,在网上购物时,一个顾客要购买多种物品;当他把选好的一件物品放入“购物车”后,他还要继续浏览和选购其他物品;因此,服务器需要记住用户的身份,使他接着选购的一些物品能够放入同一个“购物车”中,这样就便于集中结账;

有时某些万维网站点也可能想限制某些用户的访问;要做到这点,可以在HTTP中使用Cookie,现在很多网站都已广泛使用Cookie;

在RFC 6265中对Cookie进行了定义,规定万维网站点可以使用Cookie来跟踪用户,Cookie原意是“小甜饼”(广东人用方言音译为“曲奇”),目前尚无标准译名,在这里Cookie表示在HTTP服务器和客户之间传递的状态信息;

当 web 服务器向浏览器发送 web 页面时,连接关闭后,服务端不会记录用户的信息,而Cookie 的作用就是用于解决 "如何记录客户端的用户信息",是客户端用来存储数据的一种选项,但是它既可以在客户端设置也可以在服务器端设置;cookie会跟随任意HTTP请求一起发送;

实际上Cookie 其实就是存储在你电脑上的文本文件,主要存储了对应 web 页面的用户信息;

Cookie 的数据以键值对形式存储,如下所示:

                username=John Doe

主要有以下键值对:

属性

解释

NAME=VALUE

赋予Cookie的名称和其值(必需项)

VALUE=识别码

 

expires =DATE

设置cookie的失效日期,设置GMT格式的日期(new Date().toGMTString());

如果设置一个过去的时间,这个cookie会被立即删除;

若不指定则默认为浏览器关闭为止;

domin=域名

控制 cookie对「哪个域」有效(若不指定则默认为创建cookie的服务器域名),可以包含子域也可以不包含;

例如,可以是".google.com.hk"(不包含子域,表示它对google.com.hk的所有子域都有效),也可以是"www.google.com.hk"(包含子域)。

path=PATH

控制cookie发送的指定域的「路径」,默认为"/",表示指定域下的所有路径都能访问;它是在域名的基础下,指定可以访问Cookie的路径;

例如:

cookie设置为"domain=.google.com.hk; path=/webhp",那么只有".google.com.hk/webhp"及"/webhp"下的任一子目录如"/webhp/aaa"或"/webhp/bbb"会发送cookie信息,而".google.com.hk"就不会发送,即使它们来自同一个域;

Secure(boolean)

指定后,cookie只有在使用SSL连接(如HTTPS请求)时才会发送到服务器;

注意:只有保证网页是https协议(或其他安全协议)请求的,才能在客户端通过 js 去设置secure 类型的 cookie;

HttpOnly(boolean)

服务器端设置 httponly 后,存于浏览器的cookie只能由服务器端读取,前端不能通过document.cookie读取,主要目的是为了防止跨站脚本攻击,可以减轻xss(Cross Site Scripting)攻击的危害;前端无法设置httponly;

max-age

新的http协议使用max-age代替expires,它表示cookie的生存时长,单位为秒;

max-age 为负值,则cookie将在浏览器会话结束后失效,即 session

max-age的默认值为-1,若 max-age 为0,则表示删除cookie;

但在chrome测试,设置为负值会直接删除该cookie,设置为session才会在浏览器会话结束后失效;

sameSite

用来防止CSRF攻击和用户追踪;

Cookie 的 SameSite 属性 - 阮一峰的网络日志

Postman 查看知乎的 cookie

cookie存储的地方,清理缓存到底是清理什么?

浏览器清理缓存主要就是清理cookie,抹去自己登陆痕迹以及浏览器中的资源缓存,重新请求网站资源

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值