cookie学习总结

1.cookie

上网的过程:

1.首次打开网页,向服务器端发送请求,浏览器端和服务器端会建立连接,完成请求和响应,断开连接
2. 再次点击超链时,向服务器端再次发送请求,浏览器端和服务器端再次建立连接,完成请求和响应,再次断开连接
3.带来的问题:服务器如何知道本次请求和上次请求,同一个客户端??
4.客户端用cookie,服务器端用session。
5.首次请求,服务器端会分配一个sessionid(编号,相当于身份证号码) 保存在session里 在响应时,把sessionid发给客户端,客户端保存在cookie里
6.第二次请求,客户端请求时,把sessionid,带到服务器端,服务器端就能识别了。

cookie:

1、保存数据,保存在 硬盘上,(程序员可以使用和操作)
2、识别用户的的身份(要和后端的session结合)(程序员不用担心,浏览器已经做好了)。

2.cookie的使用

1、保存cookie(就是使用document对象的cookie属性)
document.cookie = ‘键=值;expires=日期的GMT格式;path=可以访问 的路径;domain=可以访问的域名’;

2、获取cookie,就用document.cookie.

3.path(可以访问的路径)
document.cookie = “键=值;expires=到期时间点(GMT格式的字符串);path=;domain=”;

path是设置当前cookie可以被哪些路径下的html文件访问。
//1、如果不设置path,即默认情况下,是当前路径下网页及其子路径下的网页都可以访问。
//2、如果设置了path,那么,cookie就可以被path对应的路径下的文件及其子路径下的文件访问:
1)、path=/goods : 表示 网站根目录下的goods路径下,所有文件可以反问,及goods下的子路径的文件也可以访问
//2)、path=/ :表示整个网站都能使用( / 表示根路径)

3.cookie的封装

//注意:任何键值对格式的数据,键都是唯一的。

//保存cookie(添加)
//参数:
// 键
// 值
// 有效期:(单位:多少天)
//
function addCookie(key,value,dayCount,path,domain){
    let d = new Date();
    d.setDate(d.getDate()+dayCount);

    let str = `${key}=${escape(value)};expires=${d.toGMTString()}`; //escape()是把字符串进行百分号编码
    if(path){
        str+= `;path=${path}`;
    }
    if(domain){
        str+= `;domain=${domain}`;
    }

    document.cookie = str;
}

//获取cookie(查询)根据键获取值
//参数:
// 键
//返回值:值(键对应的值)

function getCookie(key){  
    //document.cookie的示例: usernamet=hi; username=jzm; userpass=123
    var str = unescape(document.cookie);//unescape:解码
    //1、分割成数组
    let arr = str.split("; ");
    for(let i in arr){
        if(arr[i].startsWith(key)){
            return arr[i].split("=")[1];
        }
    }    
    return null;
}

//删除cookie:(cookie不能直接删除,可以通过设置过期时间为过去,进行删除)
//参数:
//键
//返回值:无
function removeCookie(key){//removeCookie("username");
    addCookie(key,"byebye",-1);
}

//修改的话:就用增加,只要键相同,就会覆盖。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值