几段代码几行解析教你读懂cookie

本文详细介绍了Cookie的原理,包括它是什么、如何存储在浏览器中以及其大小、数量和时间限制。重点讲解了Cookie的增删改查操作,并提供了一种简单的Cookie封装方法,方便使用。此外,还通过购物车实例展示了Cookie在实际应用中的场景,帮助读者更好地理解和运用Cookie。
摘要由CSDN通过智能技术生成

Cookie

什么是Cookie?

Cookie 是一些数据, 存储于你电脑上的文本文件中。
当 web 服务器向浏览器发送 web 页面时,在连接关闭后,服务端不会记录用户的信息。Cookie 的作用就是用于解决 “如何记录客户端的用户信息”:当用户访问 web 页面时,他的名字可以记录在 cookie 中。在用户下一次访问该页面时,可以在 cookie 中读取用户访问记录。
它的作用是什么呢?
首先需要知道,HTTP协议。http协议是网页传输协议,是超文本传输协议,无状态协议,而cookie是会话跟踪技术,就是用来记录http的状态的。
记录在哪?
记录在浏览器的缓存里,有一些限制,如下:
大小限制:4K±
数量限制:50±
时间限制:默认关闭浏览器就清除(会话级)
读取限制:不允许跨域,(路径,浏览器)
怎么记录呢?
这就涉及到了我们要说的重点了。cookie的用法。

核心操作在cookie的值的书写
cookie的值的要求:
key和value的格式:如:name=val
还要有配置信息:配置信息主要是如下两个:
有限期:expires
路径:path
配置信息和cookie的信息之间用;号隔开

cookie的增删改查

1、获取cookie的方式

document.cookie

2、设置cookie,也就是给cookie设置值。

document.cookie = "asdasd"

3、修改cookie,也就是给cookie设置新的值,没有那么复杂

document.cookie = "user=adasda;path=/1911";

4、删除cookie:过期时间,主动过期,可以都把有限期设置为昨天,这样就不用每次再思考了。

		var d = new Date();
		d.setDate(d.getData()-1);
		document.cookie = "user=admin;expires="+d+";path=/";
		document.cookie = "cookie的信息,将有限期设置为昨天"

cookie的封装

cookie的封装用处是很广的,大家需要牢记,(即使不会自己书写,可以总结出来保存下以备不时之需哦)

		function setCookie(key,val,options){
   
			//1.设置options的默认值为对象
			options = options || {
   };
//			2.解析options身上的path属性
			var p = options.path ? ";path="+options.path : "";
//			3.解析options身上的expires属性
			var e = "";
			if(options.expires){
   
				var d = new Date();
				d.setDate(d.getDate()+options.expires);
				e = ";expires="+d;
			}
//			4.拼接字符,并设置coolie
			document.cookie = key+"="+ val + p + e;
		}
		//删除cookie的方法
		function removeCookie(key,options){
   
			options = options || {
   };
			var d = new Date();
			d.setDate(d.getDate()-1);
			
			//设置cookie相同的名字,值无所谓,有限期修改。
			setCookie(key,null,{
   
				expires:-1,
				path:options.path
			})	
		}

获取cookie的封装

//获取cookie
		function getCookie(key){
   
			console.log(document.cookie.split("; "));
			var arr = document.cookie.split("; ");//注意空格
			for(var i =0;i<arr.length;i++){
   
				//console.log(arr[i].split("="));
				//console.log(arr[i].split("=")[0]);
				if(arr[i].split("=")[0] == key){
   
					return arr[i].split("=")[1];
				}	
			}
			return "";
		}
		console.log(getCookie("d"));

好多人即使了解到了cookie的封装,但是由于不是自己写出来的只是总结而已,可能不会用,我教大家几种简单用法,大家可以举一反三。

1、设置没有地址的cookie

setCookie("hah","jquba");

2、设置有有限期和地址的cookie

		setCookie("user","admin",{
   
			expires:4,
			path:"/Myphp"
		});

3、获取cookie

getCookie
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值