Cookie增删改查

2023-11-08

浏览器请求访问服务器,用请求头 首部行等信息来获取数据,服务器就会给出响应头,以及set-cookie(给出的是唯一的cookie)之后就返回给浏览器。当浏览器第二次请求的时候,除了发送请求头之外还要发送cookie:id =’12345’.这样服务器就会去找到这个cookie 并返回数据给浏览器。

    控制台 document.cookie得到的是字符串。

一个cookie后面的东西都会被看成是对“;”前面的数据的描写,只当成一个cookie 多个cookie要分开写。

 var oDate = new Date();
           oDate.setDate(oDate.getDate()+3);
           console.log(oDate);
    document.cookie = 'age=18;max-age=1000;';
    document.cookie ='name=ci;expires='+oDate;

如果没有设置expires 如下,session会话会在浏览器关闭的时候就结束


可以通过以下方法设置cookie的存储路径

document.cookie = 'scholar=vita:expires='+oDate+';path="/"';//设置存储路径
存在的路径不相同就会有多个cookie;

子域可以获得主域的,主域不能获得子域的
例如在

    document.cookie = 'scholar=vita:expires='+oDate+';path="/"';
    document.cookie = 'scholar=vita:expires='+oDate+';path="/web"';
    在/web下使用控制台能看到有 两个路径下的vita ; 但是在localhost下面 也就是直接/下面的不能看到/web的cookie 

document.cookie = 'scholar=vita:expires='+oDate+';path="/"';
    document.cookie = 'scholar=apple:expires='+oDate+';path="/web"';//直接在 name = value修改value

下面的代码是增删查操作

    var cookieset = {
        addCookie: function(name,value,time){//增
            document.cookie = name +'= '+value+';max-age='+time;
            return this;
        },
        deleteCookie: function(name){//删
            return this.addCookie(name,' ',-1);//删除数据就把值置为空
        },
        getCookie: function(name,callback){//获取
            var  cookieArr = document.cookie.split('; ');//首先把字符串改为数组
            console.log(cookieArr);
            // cookieArr = cookieArr.split('=');
            // console.log(cookieArr);
            for(var i = 0; i < cookieArr.length; i++){//不使用forEach()是因为只要找到就可以停止查找
                var itemCookieArr = cookieArr[i].split('=');
                console.log(itemCookieArr);
                if(itemCookieArr[0] ==name){
                    callback(itemCookieArr[1]);
                    return this;//如果找到在这里就返回了
                }
            }
            callback(undefined);//如果找不到,就返回undefined
            return this;
        }
    }       
    cookieset
        .addCookie('color','orange',10000)//1万秒后就过期
        .addCookie('student','stu',20000)
        .addCookie('fruit','apple',10000)
        .deleteCookie('student')//删除cookie只需要获取到名字就好
        .getCookie('ae',function(data){
            console.log(data);
        });

那为什么会有cookie呢?

Web应用程序时使用HTTP协议传输数据的。HTTP协议是无状态协议。能够轻松跨过防火墙。一旦数据交换完毕,客户端与服务器端的连接就会关闭,再次交换数据需要建立新的连接。这意味着服务器无法从连接上跟踪会话。

Cookie的特点:

满足同源策略:
虽然网站images.google.com 与网站www.google.com同属于Google,但是域名不一样,二者同样不能相互操作彼此的Cookie。

Cookie有个数和大小的限制,大小一般为4K。
Cookie在本地可以备更改文件,敏感的数据不要放在cookie里

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Cookie增删改查 的相关文章

  • VC 运行时库 /MD、/MDd 和 /MT、/MTd

    VC 运行时库 MD MDd 和 MT MTd 2013 01 24 18 42 11058人阅读 评论 2 收藏 举报 分类 C C 19 有段时间在写cuda程序是出现过 error LNK2005 exit 已经在 MSVCRTD l
  • 微信小程序开发之——CSS动画

    一 概述 上一节介绍了通过CSS属性keyframes设置图片选择动画 本文介绍以下两种形式的动画 this animate 接口 旧的 wx createAnimation接口 新的 2 9 0开始支持 二 this animate 2
  • 数据安全之标准-规范-政策-报告 集合收藏

    下载连接 https note youdao com s Xu9Xu0Gz 20230815更新 DB T DB36 T 1713 2022 公共数据分类分级指南 江西 pdf DB31DSJ Z 005 2020 公共数据安全分级指南 上
  • linux系统上insar处理流程,[转载]linux下安装GAMMA软件

    1 保持网络连接状态 2 Linux编译环境安装 一般安装Linux软件前需要大量的库以及相关GNU软件 这样可以避免Linux软件安装或编译出错 将yum 代码复制进终端 若提示需root权限 则先获取root权限 如 cz localh
  • Android 删除文件或文件夹

    删除文件或文件夹 fun delFileOrDir file File if file exists return if file isDirectory 递归删除文件夹里的文件 file listFiles forEach delFile
  • 学生成绩管理系统

    学生实体 属性由学号 姓名 性别 出生日期 地区 民族组成 班级实体 属性由班级编码 班级名称 院系 年级 人数组成 课程实体 属性由课程号 课程名 学分 学时 学期 前置课组成 学时实体选择课程实体 属于多对多关系 学生事宜属于班级实体
  • Vue中使用vuex(五)

    vuex的模块化 命名空间 1 目的 让代码更好维护 让多种数据分类更加明确 2 创建person js import axios from axios import nanoid from nanoid export default na

随机推荐

  • C# Namespace详解

    我现在感到学好C 就是就是要知道C 的基本语法 C 的新的特点 C 能干什么 其中我感到不管如何 NAMESPACE都是很关键的 可以说不是只对C 而言 而是整个 NET都是由NAMESPACE组成的 所以我在看了C 的基本语法后 就直奔N
  • Android常用知识点总结

    一 选择题 1 Android项目中的主题和样式资源 通常放在 C 目录 A res drawable B res layout C res values D assets 2 Dalvik虚拟机属于Android系统架构中的 C A 应用
  • Torchvision.ops.batched_nms() 和 nms()区别

    区别 batched nms 根据每个类别进行过滤 只对同一种类别进行计算IOU和阈值过滤 nms 不区分类别对所有bbox进行过滤 如果有不同类别的bbox重叠的话会导致被过滤掉并不会分开计算 Torchvision ops nms 参数
  • 干货!人体姿态估计与运动预测

    点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入 我们人类具有识别人体姿态 预测短期未来的能力 例如在走路时我们会识别对向行人的姿态 根据对他们未来运动的预测来决定往左走还是往右走 在打篮球或踢足球时会根据对防守球员的姿态 运动
  • ASP.NET Core学习路线图

    说明 1 先决条件 C https www pluralsight com paths csharp Entity Framework https www pluralsight com search q entity 20framewor
  • 最新的ssm毕业设计题目50例

    ssm毕业设计题目1 10题 1 基于SSM的车险管理系统设计与实现 2 基于SSM框架的学子商城系统的设计与实现 3 基于SSM的高校排课系统的研究与应用 4 基于SSM的湖南省入境旅游客源市场结构分析 5 基于SSM模型的重庆制造业主导
  • VOSviewer安装及配置

    VOSviewer安装网址 VOSviewer Download 根据自己电脑安装 并且VOSviewer要求JAVA 使用的是1 8 0 https www oracle com technetwork java javase downl
  • 关于maven <dependencyManagement>标签的问题

    项目场景 我giao 大家好跟大家分享一个使用maven时发现的小问题 关于父工程pom文件中 dependencyManagement 标签的问题 问题描述 在新建夫工程pom文件时 在内部的依赖不会马上到中央仓库中去下载jar包 而是在
  • 李宏毅-DeepLearning-2017-Unsupervised Learning:Neighbor Embedding

    数据降维的方法 Manifold Learning 流行学习 1 什么是流形 流形学习的观点 认为我们所能观察到的数据实际上是由一个低维流行映射到高维空间的 由于数据内部特征的限制 一些高维中的数据会产生维度上的冗余 实际上这些数据只要比较
  • 将一台笔记本电脑作为另一台笔记本电脑的扩展显示器

    步骤 步骤1 打开设置 可以使用 快捷键win i 打开设置 然后点击 系统 步骤2 点击 投影到此电脑 可以看到右边的选项是灰色 不可以选 然后点击 可选功能 如果是可选的 可以跳过步骤4 步骤3 查找是否安装了 无线显示器 如果没有安装
  • 【机器学习】Tensorflow概率编程:线性混合模型

    线性模型是我们最常见到的 最理想的数学模型 基本的线性模型是数据科学入门的基本案例 然而现实生活中的线性问题 很大几率不适用于基本的线性模型 需要使用线性混合模型来描述 Tensorflow edward提供对这类问题的解决方案 大部分数据
  • 记一次文件因content-type问题无法打开的经历

    记一次文件因content type问题无法打开的经历 引 场景 方案 Jsoup的Content Type simplemagic file can t open 流不可重复消费问题 Tika 总结 引 在Http请求头和响应头都有这个a
  • 什么是 Scrum 工件?

    What is Scrum Artifacts 随着我们的技术系统和项目在规模和复杂性方面不断发展 Scrum 会议和敏捷方法已成为许多公司开发过程中不可或缺的一部分 Scrum 会议是团队成员协作的好方法 可确保队列中的所有项目和任务都得
  • IBM RATIONAL BUILDFORGE入门

    最近在项目中使用了BUILDFORGE作为自动化部署工具进行项目的自动化部署 在此写下自己在该工具中入门的心得 1 首先需要建立服务器认证 可以为多台服务器设置相同的一个服务器认证 用该认证中的用户名和密码去登录服务器 2 其次建立服务器
  • Redis的RDB和AOF两种存储方式

    Redis其实就是一个用C语言写的一个程序 这个程序用来存储 key value数据 数据先放在内存 然后写入磁盘指定位置 这么理解十分肤浅 但tm好像就是这样啊 下面我们梳理一下Redis存储两种方式 RDB和AOF 第一种方式 RDB
  • Python求水仙花数

    水仙花数 Narcissistic Number 是一个三位数 其各位数字的立方和等于该数本身 例如 153 1 3 5 3 3 3 因此153是一个水仙花数 以下是一个简单的Python代码来找出所有的水仙花数 python def is
  • python数据分许基础

    1 单选题 单选题 下列关于数据和数据分析的说法正确的是 A 数据就是数据库中的表格 B 文字 声音 图像这些都是数据 C 数据分析的数据只能是结构化的 D 数据分析不可能预测未来几天的天气变化 正确答案 B 文字 声音 图像这些都是数据
  • 理解JavaScript的编译过程与运行机制

    JavaScript引擎 不是逐条解释执行javaScript代码 而是按照代码块一段段解释执行 所谓代码块就是使用
  • LeetCode 172. Factorial Trailing Zeroes

    Given an integer n return the number of trailing zeroes in n Follow up Could you write a solution that works in logarith
  • Cookie增删改查

    cookie 浏览器请求访问服务器 用请求头 首部行等信息来获取数据 服务器就会给出响应头 以及set cookie 给出的是唯一的cookie 之后就返回给浏览器 当浏览器第二次请求的时候 除了发送请求头之外还要发送cookie id 1