前端本地存储(一)

155 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路

本文主要记录了Cookie、以及Cookie常用操作和Cookie常用属性。

Cookie

Cookie介绍

Cookie全程 HTTP Cookie ,简称 Cookie。它是浏览器存储数据的一种方式,一般会自动随着请求发送到服务器;

有的网站会利用Cookie跟踪统计用户的习惯,比如:访问时间,访问哪些页面,页面停留时间等;

Cookie是公开透明的,不要用Cookie存储密码等敏感信息

在这里插入图片描述

Cookie容量限制

单个Cookie容量为4k,不同浏览器Cookie个数各不相同一般设置20个没有问题

IE6及以下每个域名最多包含20个Cookie; IE7及以上每个域名最多50个Cookie; Firefox每个域名最多50个Cookie; Opera下每个域名最多30个Cookie; Sarafi和Chrome对每个域的Cookie数目没有严格限制。

Cookie基本操作

写入Cookie

通过document.cookie设置Cookie,不支持一次设置多个Cookie,只能一个一个的设置; 在这里插入图片描述

在这里插入图片描述

读取Cookie

读取也通过document.cookie,读取全部Cookie;

读取的是由名值对构成的字符串,每个名值对之间由; (一个分号和一个空格) 分隔; 在这里插入图片描述

Cookie属性

Name(名)、Value(值)

Name、Value是创建Cookie时必须填写的,其他属性不写为默认值;

Name、Value如果包含非英文字符,写入需要使用encodeURIComponent()编码,读取需要使用decodeURIComponent()解码; 在这里插入图片描述

Expires、Max-Age(失效时间)

未设置Expires、Max-Age的cookie为会话cookie,它存在内存中,当会话结束即关闭浏览器时清除cookie;

设置Expires、Max-Age属性的cookie到期后会被清除;

Expires

expires值为Date类型,表示具体什么时间过期; 在这里插入图片描述

Max-Age

max-age值为数字,表示过多少秒后失效; 在这里插入图片描述 如果max-age值为0 或 负数这直接清除cookie;

Domain(域)、Path(路径)

Domain

Domain限制了cookie的访问范围;

js只能读写当前域或父域的cookie,不能读写其他域的cookie;

在这里插入图片描述

www.aaaa.comm.aaaa.com 的父域为 .aaaa.com

Path

Path限制了cookie的访问范围(同一域名下);

js只能读写当前路径或上级路径的cookie,不能读写其他路径的cookie; 在这里插入图片描述

==Name、Domain、Path三个字段都相同时,才是同一个cookie;==

HttpOnly

如果这个cookie设置了httponly属性,则这个cookie不能通过客户端访问;

Secure

Secure限定了只有使用https协议,才能将cookie发送到服务器端

==Domain、Path、Secure都满足其未过期的cookie才会随着请求发送到服务器端;==

本文到此结束

如果大家还有什么其他想法,欢迎在评论区交流!