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

posted @   海胆Sur  阅读(7)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示