1,什么是 Cookie?

Cookie是一些数据, 存储于你电脑上的文本文件中。

web服务器向浏览器发送web页面时,在连接关闭后,服务端不会记录用户的信息。Cookie的作用就是用于解决如何记录客户端的用户信息。当用户访问web页面时,他的名字可以记录在Cookie中。在该用户下一次访问该页面时,可以在Cookie中读取该用户的访问记录。

  • 当浏览器从服务器上请求web页面时, 属于该页面的Cookie会被添加到该请求中。服务端可以通过这种方式来获取用户的信息。

1.1,存储形式

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

userName=pony

1.2,常用属性

属性 用处 默认值
Name
Value
Domain 允许访问的域 当前域
Path 允许访问的路径 当前路径
Expires / Max-Age 过期时间 关闭页面即清除(Session)
Size 占用字节大小 无需设置

1.3,大小限制

浏览器 大小 (KB) 每个域存储个数限制
Firefox 4
Safari 4
Opera 4 30
IE 4 50
Edge 4 50
Chrome 4 50

2,增 or 改Cookie

/**
* 设置cookie
* @param {String} key 键
* @param {String} value 值
* @param {String} expires 过期时间(yyyy-MM-dd 或 yyyy-MM-dd HH:mm:ss 或 时间戳) => default:页面关闭即过期(Session)
* @param {String} domain 域 => default:当前域
* @param {String} path 路径 => default:/
*/
function setCookie(key, value, expires = '', domain = window.location.hostname, path = '/') {
const time = expires ? new Date(expires) : expires
console.log(time)
const cookie = `${key}=${value}; expires=${time}; domain=${domain}; path=${path}`
document.cookie = cookie
}

调用例子:

setCookie('user', '我是你爸爸', '2022-02-20 16:29:00').
// 或者
setCookie('user', '我是你爸爸', '2022-02-20')
// 或者
const timestamp = new Date('2022-10-01').getTime()
setCookie('user', '我是你爸爸', timestamp)

3,查Cookie

/**
* 获取所有cookie的key
* @return {Array<string>} Cookie键组成的数组
*/
function getAllCookieKey() {
const Cookie = document.cookie
const cookieList = Cookie.split('; ')
return cookieKeyList = cookieList.map(item => {
return item.split('=')[0]
})
} /**
* 根据cookie的key获取对应的值
* @param {String} key 键
* @return {String} value 值
*/
function cookieKeyGetValue(key) {
const Cookie = document.cookie
const cookieList = Cookie.split('; ')
const cookieKeyList = cookieList.map(item => {
return item.split('=')[0]
})
const index = cookieKeyList.indexOf(key)
return cookieList[index].split('=')[1]
}

4,删Cookie

/**
* 根据key清除cookie
* @param {String} key 键
* @param {String} domain 域 => default:当前域
* @param {String} path 路径 => default:/
*/
function clearCookie(key, domain = window.location.hostname, path = '/') {
const Time = new Date()
Time.setTime(Time.getTime() + -1 * 24 * 60 * 60 * 1000)
const expires = `expires=${Time.toUTCString()}`
document.cookie = `${key}=; ${expires}; path=${path}; domain=${domain}`
} // 清除所有cookie
function clearAllCookie() {
const cookieKeyList = getAllCookieKey()
for (let key of cookieKeyList) {
clearCookie(key)
}
}

如果看了觉得有帮助的,我是@鹏多多,欢迎 点赞 关注 评论;END


PS:在本页按F12,在console中输入document.querySelectorAll('.diggit')[0].click(),有惊喜哦


公众号

往期文章

个人主页

最新文章

  1. MMORPG大型游戏设计与开发(服务器 AI 基础接口)
  2. wcf第3步之报文分析及原生调用
  3. 解决使用osgModeling的Loft生成管子时的bug(续)
  4. ZOJ 3817Chinese Knot(The 2014 ACM-ICPC Asia Mudanjiang Regional First Round)
  5. a href=#与 a href=javascript:void(0) 的差别
  6. 【转】10个你必须掌握的超酷VI命令技巧
  7. 双卡双待支持双电池 夏新N808深度评测_夏新手机评测-泡泡网
  8. web打印小结
  9. 在 Visual Studio 2010 中创建 SharePoint 2010 事件接收器
  10. 使用VC建立网络连接并访问网络资源
  11. js下载base64格式的图片(兼容火狐)
  12. C++ 实验3 类和对象
  13. selenium 3+java 配置全
  14. a,abbr,address,area,article, aside, audio标签文档
  15. CentOS Linux release 7.3破解密码详解
  16. sql 指定数据库中的信息操作
  17. linux驱动开发( 五) 字符设备驱动框架的填充file_operations结构体中的操作函数(read write llseek unlocked_ioctl)
  18. php中is_null,empty,isset,unset 的区别详细介绍
  19. 3D Render
  20. 在Ubuntu中增加root用户登录

热门文章

  1. html手机调试
  2. 听说你想在 WordPress 网站上嵌入 PPT ?
  3. Web开发之request
  4. 2月2日 体温APP开发记录
  5. Kubernetes-Secret
  6. 『无为则无心』Python函数 — 40、Python自定义异常
  7. 这个命令行HTTP客户端工具真不错
  8. 关于笨蛋式病毒创作(CMD式)C++
  9. Java语法专题1: 类的构造顺序
  10. 羽夏看Win系统内核—— APC 篇