首页 > 其他分享 >会话管理-帮你搞懂cookie(Html版本)

会话管理-帮你搞懂cookie(Html版本)

时间:2024-10-23 13:19:35浏览次数:8  
标签:name 索引 Html cookie 设置 字符串 搞懂 document

前端JavaScript中的cookie是一种用于在浏览器和服务器之间传递数据的机制。它们通常用于跟踪用户的会话信息,如登录状态、购物车内容等。Cookie的使用非常广泛,几乎所有的web应用程序都会使用到cookie来保存用户信息或者偏好设置‌。

【注:dom和jdom的概念和转换看这篇-->】后端入门 (JQuery基础) 01-CSDN博客

一、jQuery和JavaScript具备cookie板块,都可以对cookie进行操作。

jQuery通过其插件或直接使用"document.cookie"属性进行操作,而JavaScript原生支持通过document.cookie属性来创建、读取、修改和删除cookie。

1. jQuery操作cookie

  • 设置cookie:使用$.cookie('cookie_name', 'the_value');可以设置一个名为cookie_name的cookie,值为the_value。如果需要指定过期时间,可以这样设置:$.cookie('cookie_name', 'the_value', {expires: 7});这将设置cookie在7天后过期。(注:expires的时间单位是天)
  • 读取cookie:使用$.cookie('cookie_name');可以读取名为cookie_name的cookie的值。
  • 删除cookie:通过将值设置为null来删除cookie,例如:$.cookie('cookie_name', null);

2. Javascript调用cookie:

  • 设置cookie:使用document.cookie = "account=Rain; expires=Thu, 18 Dec 2024 12:00:00 GMT;";可以设置一个名为account的cookie,值为Rain,并指定过期时间为2024年12月18日。
  • 读取cookie:通过访问document.cookie属性可以获取到所有cookie的字符串,然后可以解析这个字符串来获取特定的cookie值。
  • 删除cookie:通过设置一个cookie的过期时间为一个过去的日期来实现删除。

二、有了以上概念后,便可以写一个实例了:

1.setcookie.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>

    //javascript设置获取cookie
    //document.cookie="变量名=变量值"
    document.cookie="account=rain"
    document.cookie="password=123456"
    document.cookie="key=value;max-age="+60*60
        
</script>
</head>
<body>

</body>
</html>

2.getcookie.html

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script>
//获取cookie
    function getCookie(key){
        var arr = document.cookie.split(";")
        for(var i=0;i<arr.length;i++){
            console.log(arr)
            arr[i]=arr[i].trim()
            if(arr[i].indexOf(key)==0){
                return arr[i].substring(key.length+1)
                //从key=后开始截取arr[i]这个字符,即截取"key=value"中的value部分,+1是为了将=也略过去
            }
            
        }
        return ""
    }
    console.log(getCookie("account"))
</script>
</head>
<body>

</body>
</html>

【注:在getcookie.html一些方法注释】

console.log(document.cookie.split(";"))//以空格作为切割,分割成字符串数组

console.log(document.cookie.trim())//去掉字符串前后的空格

indexOf() 判断有没有字符串,如果有,会返回匹配的第一个字符串的位置

lastindexOf()判断有没有字符串,如果有,会返回匹配的最后一个字符串的位置,如果没有,返回-1

indexOf("",n)跳过n个元素后查找这个字符串

substring()裁剪:{

‌[substring(index)‌: 返回一个新的字符串,该字符串从指定的开始索引index处直到原字符串的末尾。

‌[substring(int beginIndex, int endIndex)‌: 返回一个新的字符串,该字符串从指定的开始索引处到结束索引前一位(留头去尾)。

‌开始索引(beginIndex)‌:必须是字符串中的有效索引,即0到字符串长度-1之间的整数。

‌结束索引(endIndex)‌:必须是字符串中的有效索引,且大于开始索引。

‌负索引‌:如果开始索引或结束索引为负数,则从字符串的末尾向前计数,负数绝对值加1为正索引位置。例如,-1表示字符串的最后一个字符。

}

3.此处还给出一个jQuery简易版本:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script src="../jQuery/jq.js"></script>
<script src="../jQuery/jquery.cookie.js"></script>
<script>

    $.cookie('password','123456',{expire:1})//设置失效期限为一天{expire:1}
    //获取
    console.log($.cookie('key'))
    console.log($.cookie('account'))
    console.log($.cookie('password'))
    //删除
    $.removeCookie('password')


</script>
</head>
<body>

</body>
</html>

三、cookie的优缺点:

优点:

  • 可以设置到期规则,cookie默认在国企之前一直保存在浏览器上

cookie包含简单的键值对

缺点:

  • 大小受限制-->大多数浏览器对每个域的Cookies数量和大小都有严格的限制。每个Cookies的大小通常不超过4KB,且每个域最多只能存储50个Cookies
  • cookie禁用问题
  • 带来安全风险,cookie可以被篡改​​​​​​​

标签:name,索引,Html,cookie,设置,字符串,搞懂,document
From: https://blog.csdn.net/m0_74977981/article/details/143181659

相关文章