cookie和它的封装

cookie是用来储存web页面的用户信息

由于HTTP是一种无状态的协议,服务器但从网络链接上时无法知道客户信息的。

这个时候服务器会给客户端(浏览器)颁发一个cookie,用来确认用户的信息。

获取 cookie 
 document.cookie
设置 cookie 
 document.cookie="name=value"cookie 的设置语法: document.cookie = 'key=value'一次只能设置一条cookie 设置的时候加上修饰信息语法: document.cookie = 'key=value; 修饰信息'修饰一个过期时间 => document.cookie = 'key=value;expires=时间对象'document.cookie 将以字符串的方式返回所有的 cookie类型格式: cookie1=value; cookie2=value; cookie3=value;
设置失效时间 默认失效时间(session)会话 

cookie的封装:

1.相同的部分   不做处理

2.不同的部分   使用参数进行表示

    // 获取function getCookie(key){// 'name1=孙悟空; name2=猪八戒; name3=沙悟净'// 1.转换为数组  分割字符串var arr=document.cookie.split("; ");// 2.遍历数组for(var i=0;i<arr.length;i++){// console.log(arr[i])var arrItem=arr[i].split("=");// console.log(arrItem);// 当数组的第0项和key相同时返回数组的第1项if(arrItem[0]===key){return arrItem[1]}}}// console.log(getCookie("name1"));// 设置function setCookie(key,value,time){var oDate=new Date();oDate.setDate(oDate.getDate()+time);//过期时间 按天来计算document.cookie=`${key}=${value};expires=${oDate}`}// 删除  设置过期时间为过去的时间function removeCookie(key){setCookie(key,"",-1)}// 清空function clearCookie(){var arr=document.cookie.split("; ");for(var i=0;i<arr.length;i++){// console.log(arr[i])var arrItem=arr[i].split("=");// console.log(arrItem);setCookie(arrItem[0],"",-1)}}

cookie特点 

cookie 是基于域名存储的( 一个域名存储, 哪一个域名使用)
cookie 的存储有大小限制(4 KB 左右, => 50 条左右)
cookie 的存储数据格式 能是字符串格式的内容 key=value; key2=value'
cookie 存储是有时效性的 ,是会话级别的时效, 关闭浏览器自动删除 可以手动设置过期时间, 不管是否关闭浏览器, 都会计时
前后端传输 要 cookie 空间内有内容 在当前页面内发送的所有给后端的信息, 都会自动携带 cookie
前后端操作 ,可以依靠 js 来操作 后端可以依靠任何语言操作 cookie不同网站不能共享

name:一个唯一确定的cookie名称。通常cookie名称不区分大小写value:存储在cookie中的字符串值。最好为cookie的name和value进行url编码domain:cookie对哪个域是有效的  域名 www.baidu.compath:表示这个cookie影响到的路径,浏览器会根据这个配置项
向指定的域中匹配的路径发送cookieexpires:失效时间  表示cookie何时被删除(停止向服务器发送cookie)
时间值是GMT格式的  设置过去的时间,直接删除  默认为会话缓存(关闭浏览器删除)max-age:与expires效果相同  max-age优先级高于expireshttpOnly:告知浏览器不允许通过脚本document.cookie去更改这个值
同样这个值在document.cookie中也不可见。但在http请求者仍然会携带
这个cookie。注意这个值虽然在脚本中不可获取,但仍然在浏览器
安装目录中以文件形式存在。  这项设置通常在服务器端设置。secure:安全标志,指定后,只有在使用SSL链接时才能发送到服务器,
如果是http链接则不会

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576931.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】:超详细MySQL完整安装和配置教程

&#x1f3a5; 屿小夏 &#xff1a; 个人主页 &#x1f525;个人专栏 &#xff1a; MySQL从入门到进阶 &#x1f304; 莫道桑榆晚&#xff0c;为霞尚满天&#xff01; 文章目录 &#x1f4d1;前言一. MySQL数据库1.1 版本1.2 下载1.3 安装1.4 客户端连接 &#x1f324;️全篇总…

Docker面试题

大家好&#xff0c;我是升仔 1、Docker中镜像和容器的区别是什么&#xff1f; Docker镜像和容器的主要区别在于它们的角色和功能&#xff1a; 1、静态与动态&#xff1a; Docker镜像是一个静态的文件&#xff0c;它包含了运行容器所需的代码、库、环境变量和配置文件。而容器…

LaTex设置标题页、修改文字颜色和文字高亮

目录 一、标题页 1&#xff09;常用的代码 2&#xff09;添加脚注 二、修改文字颜色和文字高亮 1&#xff09;设置文本的颜色 2&#xff09;添加文本高亮 3&#xff09;给文本添加有颜色的方框 一、标题页 主要的代码&#xff1a; \begin{titlepage} \noindent\fonts…

如何实现https密钥对登录方式

先安装docker yum install -y yum-utils device-mapper-persistent-data lvm2 yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo systemctl start docker.service systemctl enable docker.service yum install -y docker…

Kali Linux—借助 SET+MSF 进行网络钓鱼、生成木马、获主机shell、权限提升、远程监控、钓鱼邮件等完整渗透测试(一)

社会工程学—世界头号黑客凯文米特尼克在《欺骗的艺术》中曾提到&#xff0c;这是一种通过对受害者心理弱点、本能反应、好奇心、信任、贪婪等心理陷阱进行诸如欺骗、伤害等危害手段。 SET最常用的攻击方法有&#xff1a;用恶意附件对目标进行 E-mail 钓鱼攻击、Java Applet攻…

nosql-redis整合测试

nosql-redis整合测试 1、创建项目并导入redis2、配置redis3、写测试类4、在redis中创建key5、访问80826、在集成测试中测试方法 1、创建项目并导入redis 2、配置redis 3、写测试类 4、在redis中创建key 5、访问8082 6、在集成测试中测试方法 package com.example.boot3.redis;…

SpringMVC之跨域请求

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 SpringMVC之跨域请求 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、什么是同源策略…

doris基本操作,04-表结构的变更

整体思路 因为doris完全兼容mysql协议&#xff0c;因此操作上基本与mysql没有太大区别&#xff0c; 之需要注意与doris相关的关键字即可&#xff0c;如&#xff1a;预聚合&#xff0c;key等 当前表结构 create table table1 {siteid int default 10,citycode smallint,usern…

13章总结

一.泛型 1.定义泛型类 泛型机制语法&#xff1a; 类名<T> 其中&#xff0c;T是泛型的名称&#xff0c;代表某一种类型。 【例13.6】创建带泛型的图书类 代码&#xff1a; 结果&#xff1a; 2.泛型的常规用法 (1)定义泛型类时声明多个变量 class MyClass<T1,T2>…

HarmonyOS 签名打包Hap(s)、App(s)

1. 基本概念 HarmonyOS应用通过数字证书&#xff08;.cer文件&#xff09;和Profile文件&#xff08;.p7b文件&#xff09;来保证应用的完整性&#xff0c;数字证书和Profile文件可通过申请发布证书和Profile文件获取。   申请数字证书和Profile文件前&#xff0c;首先需要通…

渗透测试——1.2被动扫描

一、概念 目标无法觉察的情况下进行的信息收集。公开渠道可获得的信息&#xff0c;与目标系统不产生直接交互&#xff0c;尽量避免留下一切痕迹。 二、CDN&#xff08;content delivery netword内容分发网路&#xff09; 多台边缘服务器提供网络服务&#xff0c; 三、WAF&am…

【vscode插件】之插件图标设置

ChatgGPT4.0国内站点: 海鲸AI-支持GPT(3.5/4.0)&#xff0c;文件分析&#xff0c;AI绘图 在Visual Studio Code中创建插件时&#xff0c;你可以为你的插件设置一个图标&#xff0c;这个图标会在VS Code的插件市场和插件侧边栏中显示。以下是设置插件图标的步骤&#xff1a; 准备…

docker-compose 安装Sonar并集成gitlab

文章目录 1. 前置条件2. 编写docker-compose-sonar.yml文件3. 集成 gitlab4. Sonar Login with GitLab 1. 前置条件 安装docker-compose 安装docker 创建容器运行的特有网络 创建挂载目录 2. 编写docker-compose-sonar.yml文件 version: "3" services:sonar-postgre…

地图导航测试点总结

地图导航是我们经常使用的工具&#xff0c;能帮助我们指引前进的方向。 接下来&#xff0c;会从功能测试、UI测试、兼容测试、安全测试、网络测试、性能测试、易用性测试、文档和国际化语言测试8个方面来编写地图导航测试用例。 一、功能测试 1. 输入起点和终点&#xff0c;…

CSS样式斜切边

html部分 <div class"rectangle"></div> 样式一&#xff1a; .rectangle { width: 251px; height: 75px; background: linear-gradient(-135deg, transparent 52px, #ffffff 0) top right; background-size: 100% 100%; background-repeat: no-repeat; b…

Flume采集日志存储到HDFS

1 日志服务器上配置Flume,采集本地日志文件&#xff0c;发送到172.19.115.96 的flume上进行聚合&#xff0c;如日志服务器有多组&#xff0c;则在多台服务器上配置相同的配置 # Name the components on this agent a1.sources r1 a1.sinks k1 a1.channels c1# Describe/con…

德思特分享丨V2X在做什么?连接未来智能出行的车联网(下)

来源&#xff1a;德思特测试测量 德思特分享丨V2X在做什么&#xff1f;连接未来智能出行的车联网&#xff08;下&#xff09; 原文链接&#xff1a;https://mp.weixin.qq.com/s/yEoCrLls-xuaF4CvVT2_zQ 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 在之前的文章中…

设计模式之-备忘录模式,快速掌握备忘录模式,通俗易懂的讲解备忘录模式以及它的使用场景

文章目录 一、快速理解备忘录模式二、备忘录模式使用场景三、代码示例四、我们再来听一个故事&#xff0c;加深一下理解五、备忘录模式的优缺点优点缺点 总结 一、快速理解备忘录模式 备忘录模式&#xff08;Memento Pattern&#xff09;是一种行为型设计模式&#xff0c;用于…

pytorch 踩坑

pytorch 踩坑 在pytorch中&#xff0c;如果你定义了没用的组件&#xff0c;同样也会影响你的模型(我也不知道从哪里影响的)&#xff0c;看一个例子 def _make_layer(self, block, planes, blocks, stride1, dilateFalse):norm_layer self._norm_layer#downsample Noneprevio…

外卖系统开发:构建高效、安全的外卖平台

在当今数字化时代&#xff0c;外卖系统成为了餐饮行业不可或缺的一部分。本文将介绍如何使用一些主流的技术和代码片段来开发一个简单而功能强大的外卖系统。 1. 技术选择 在开始外卖系统的开发之前&#xff0c;首先需要选择合适的技术栈。以下是一个常见的技术栈&#xff1…