美文网首页需要近期研究的项目
超详细的Cookie增删改查

超详细的Cookie增删改查

作者: 鹏多多 | 来源:发表于2022-02-21 11:31 被阅读0次

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 占用字节大小 无需设置
Cookie描述

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)
  }
}

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

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

往期文章

个人主页

相关文章

  • 超详细的Cookie增删改查

    1,什么是 Cookie? Cookie是一些数据, 存储于你电脑上的文本文件中。当web服务器向浏览器发送web...

  • session与cookie关系

    1、cookie 1)Http协议是无状态的,如果没有cookie,每次登陆后再进行增、删改查操作都要重定向到登陆...

  • java笔记2-servlet-会话管理

    cookie增删改查 增 查 改(除了value,MaxAge其它都应该保持不变,负责浏览器会认为不是同一个coo...

  • mysql的插入语句

    MySQL增删改查之增insert、replace

  • MYSQL数据库的增删改查

    MYSQL数据库的增删改查 一.对于库的增删改查 增create database 库名称;create data...

  • cookie的增删改查

    设置cookie setCookie(name, value, days) { // days为保存时间长度 ...

  • 前端基础知识复习(三)

    知识点整理来源于网上。详细的介绍推荐直接看API文档。 DOM 功能 对元素的增查删改① 查询某个元素② 查询某个...

  • Servlet Cookie的添加删除以及作用域

    1、cookie的增删改查 cookie不支持特殊字符,建议所有要存储的内容都应进行URLEncoder.enco...

  • 关于python的list的增查删改

    说到增查删改,想起了数据库,我们在关系型数据库当中就会对表进行增查删改。 在python当中我们也可以对list进...

  • 0812 A

    mongodb 增删改查 增: db.createCollection("name", {options:numb...

网友评论

    本文标题:超详细的Cookie增删改查

    本文链接:https://www.haomeiwen.com/subject/hhablrtx.html