cookie可选项

本文详细介绍了Cookie的概念,包括其在用户会话中的作用、组成结构、如何设置与获取,以及各种属性如expires、path、domain和secure的使用方法。还提供了编码和解码中文的技巧,以及如何删除Cookie。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

cookie概念

储存在用户本地终端上的数据,用来存储用户的数据。

在一次会话从开始到结束的整个过程,全程跟踪记录客户端的状态(例如:是否登录、购物车信息、是否已下载、是否 已点赞、视频播放进度等等)

cookie一般情况下需要在服务器环境下加载。火狐支持本地加载。

cookie的组成

cookie 由名/值对形式的文本组成:name=value。完整格式为:
name=value;[expires=date];[path=path];[domain=somewhere.com];[secure]
中括号是可选,name=value 是必选。

//设置cookie
document.cookie = 'username=Tom';

//获取cookie
alert(document.cookie);

设置cookie的时候,有可能在cookie中存储中文。
【注】如果在cookie中有中文,一般情况下采取下述的处理方式。
1、编码去存储(中文 => 字符) encodeURIComponent 编码
2、解码去读取(字符 => 中文) decodeURIComponent 解码

expires

设置cookie过期日期,可以通过自定义的方式自定义过期日期。

【注】如果我们不去设置这个键,默认是当前会话结束时消失(只要将整个浏览器关闭)

细节:cookie过期的话,系统会自动清除过期的cookie。
删除cookie:我们可以将cookie过期日期,设置成过去的某一时刻。

path

限制访问路径:如果我们不去设置path,默认是当前加载的.html文件路径。

【注】如果设置的cookie路径和加载文件的路径不一致的话,不能访问到cookie。	
domain

限制访问域名:如果不去设置,默认,是当前加载文件的域名或者IP。

【注】设置cookie的域名和加载文件的域名不一致的话,cookie设置失败。
secure

如果不设置,默认是false。可以允许任何网络传输协议加载 http https

【注】如果加了这个键,就必须用https协议(证书认证的协议)来加载文件。
cookie存储大小的限制:
cookie总共存储大小的上限是 4KB左右
cookie每一域名下面,最多可以存储50条cookie。

cookie的封装

获取cookie
function getCookie(name){
	var cookieStr = decodeURIComponent(document.cookie);
	// 1、键在字符串中出现的位置
	var start = cookieStr.indexOf(name);
	if(start == -1){
		return null;
	}else{
		// 2、找到结束位置
		var end = cookieStr.indexOf(";", start);
		if(end == -1){
			end = cookieStr.length;
		}
	}
	// 3、提取字符串
	var subStr = cookieStr.substring(start, end);
	// 4、字符串分割
	var arr = subStr.split("=");
	return arr[1];
}
设置cookie
function setCookie(name, value, expires, path, domain, secure){
	var cookieStr = encodeURIComponent(name) + '=' + encodeURIComponent(value);
	if(expires){
		cookieStr += ";expires=" + numOfDate(expires);
	}
	if(path){
		cookieStr += ";path=" + path;
	}
	if(domain){
		cookieStr += ";domain=" + domain;
	}
	if(secure){
		cookieStr += ";secure";
	}
	document.cookie = cookieStr;
}
function numOfDate(n){
	var d = new Date();
	var date = d.getDate();
	d.setDate(n + date);
	return d;
}
删除cookie
function removeCookie(name){
	document.cookie = encodeURIComponent(name) + "=;expires=" + new Date(0);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值