HTTP Cookie
Cookie 是服务器发送到用户浏览器并保存在本地的一小块数据。浏览器会存储 cookie,每次http请求都会将 cookie 携带传回给服务器,但客户端也可以设置cookie(也就是说可以被篡改)。
Cookie 的大小和数量被限制。一般为不超过 4KB,不超过20个
同源策略:同域名
// 存储形式
xxx=xxx;
expires
添加一个过期时间
默认情况(不设置expires,max-age)下,cookie 存储在内存中 在 浏览器关闭时 删除
path
cookie 的路径
应用:
- 会话状态管理; http 是无状态的
- 个性化设置;
- 浏览器行为跟踪;
创建 、读取、及删除 Cookie
document.cookie="username=John Doe";
删除:expires需为过去时间
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
实例
function setCookie(cname,cvalue,exdays){
var d = new Date();
d.setTime(d.getTime()+(exdays*24*60*60*1000));
var expires = "expires="+d.toGMTString(); // 1天后过期
document.cookie = cname+"="+cvalue+"; "+expires;
}
function getCookie(cname){
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i=0; i<ca.length; i++) {
var c = ca[i].trim();
if (c.indexOf(name)==0) { return c.substring(name.length,c.length); } // 返回cname值
}
return "";
}
function checkCookie(){
var user=getCookie("username");
if (user!=""){
alert("欢迎 " + user + " 再次访问");
}
else {
user = prompt("请输入你的名字:","");
if (user!="" && user!=null){
setCookie("username",user,30);
}
}
}
<body onload="checkCookie()"></body>
会话期 Cookie 会在当前的会话结束之后删除。浏览器定义了“当前会话”结束的时间,一些浏览器重启时会使用会话恢复。这可能导致会话 cookie 无限延长。
Secure 属性和 HttpOnly 属性
Domain 和 Path
内容会不断更新,欢迎批评指正。
分类:
# JavaScript
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码