超详细的Cookie增删改查
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(),有惊喜哦

公众号
往期文章
- 助你上手Vue3全家桶之Vue-Router4教程
- 助你上手Vue3全家桶之Vue3教程
- 助你上手Vue3全家桶之VueX4教程
- 使用nvm管理node.js版本以及更换npm淘宝镜像源
- 超详细!Vue-Router手把手教程
- vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令
- 微信小程序实现搜索关键词高亮
- 超详细!Vue的九种通信方式
- 超详细!Vuex手把手教程
个人主页
超详细的Cookie增删改查的更多相关文章
- 网络系列之 cookie增删改查(封装)
什么是cookie 呢?简单来说,这个小东西,会记录你的 浏览器 浏览习惯,或 账号密码等, 以便于提高用户的体验感. 举个例子: 你们有没有发现,去淘宝一些购物网站, 你搜索了 椅子, 挑选了一会椅 ...
- js对cookie增删改查的封装
/** * 获取cookie * @param name * @returns {*} */ function getCookie(name) { var cookieArr = document.c ...
- Java管理Cookie增删改查操作。
Cookie属性 了解这几个属性之后,就知道如何进行Cookie的操作了. name Cookie的名称. value Cookie的值. maxAge Cookie的失效时间,有以下几种值,默认为- ...
- 超详细的DOM操作(增删改查)
操作DOM的核心就是增删改查 原文地址:https://jianshu.com/p/b0aa846f4dcc 目录 一.节点创建型API 1.1 createElement 1.2 createTex ...
- Java web 简单的增删改查程序(超详细)
就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...
- sqlHelper做增删改查,SQL注入处理,存储值,cookie,session
一.存储值 eg:登录一个页面,在进入这个页面之前你怎么知道它登没登录呢?[在登录成功之后我们把状态保存起来] 存储值得方式有两种,一种是cookie,一种是session 1.1区别: 代码: if ...
- sqlite数据库操作详细介绍 增删改查,游标
sqlite数据库操作详细介绍 增删改查,游标 本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code package com.example ...
- Selenium入门13 cookie的增删改查
cookie的增删改查: 查询:get_cookies()查询所有cookie,get_cookie(cookie的name)获取单个cookie 删除:delete_cookie(cookie的na ...
- SSMybatis整合 --详细解读Mybatis对oracle数据库进行增删改查(一)
Mybatis是现在主流的持久化层框架,与Hibernate不同的是,它鼓励程序员使用原声SQL语句对数据库进行操作.因此提供了非常灵活的功能.特别是当数据库同时访问数过多,需要进行优化时,使用sql ...
随机推荐
- 通过js触发launch事件获取页面信息
注:图片如果损坏,点击文章链接:https://www.toutiao.com/i6814776265602499080/ 承接上一篇文档<页面Cookie的JS文件编写> 思路 继续之前 ...
- jenkins学习9-测试报告发邮件(Email Extension Plugin)
前言 前面已经实现在jenkins上展示html的测试报告,接下来只差最后一步,把报告发给你的领导,展示你的劳动成果了. 安装 Email Extension Plugin 插件 jenkins首页- ...
- 两张Number()函数图和Boolean()函数图
- Solon 1.6.15 发布,增加部分jdk17特性支持
关于官网 千呼万唤始出来: https://solon.noear.org .整了一个月多了...还得不断接着整! 关于 Solon Solon 是一个轻量级应用开发框架.支持 Web.Data.Jo ...
- 【记录一个问题】opencv中使用UMat类,在析构的时候出现refcount == 0的断言错误
发生coredump时的错误信息如下: terminate called after throwing an instance of 'cv::Exception' what(): OpenCV(4. ...
- 【记录一个问题】linux+opencv+cuvid解码1080P视频,当使用CUDA核函数的时候,必然崩溃
崩溃的信息如下: 1 OpenCV(4.1.0-dev) Error: Gpu API call (invalid configuration argument) in videoDecPostPro ...
- Autofac实现拦截器和切面编程
Autofac.Annotation框架是我用.netcore写的一个注解式DI框架,基于Autofac参考 Spring注解方式所有容器的注册和装配,切面,拦截器等都是依赖标签来完成. 开源地址:h ...
- golang中值类型的嵌入式字段和指针类型的嵌入式字段
总结: 1. 值类型的嵌入式字段,该类型拥有值类型的方法集,没有值指针类型的方法集 2. 指针类型的嵌入式字段,该类型拥有值指针类型的方法集,没有值类型的方法集,并且,该类型的指针类型也有值指针类型的 ...
- Go 变量及基本数据类型2
#### Go 变量及基本数据类型(二)今天学习一下基本数据类型,包括整数类型,小数类型,字符类型##### 整数类型用来存放整数数值的, 如0,1,-10,2222等; 整数型的类型有: 类型 有无 ...
- ☕【Java深层系列】「并发编程系列」让我们一起探索一下CyclicBarrier的技术原理和源码分析
CyclicBarrier和CountDownLatch CyclicBarrier和CountDownLatch 都位于java.util.concurrent这个包下,其工作原理的核心要点: Cy ...