session,cookie,sessionStorage,localStorage的相关设置以及获取删除

Posted jing-tian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了session,cookie,sessionStorage,localStorage的相关设置以及获取删除相关的知识,希望对你有一定的参考价值。

一、cookie

 什么是 Cookie?

  “cookie 是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个 cookie。你可以使用 javascript 来创建和取回 cookie 的值。” - w3school   

  cookie 是访问过的网站创建的文件,用于存储浏览信息,例如个人资料信息。   

  从JavaScript的角度看,cookie 就是一些字符串信息。这些信息存放在客户端的计算机中,用于客户端计算机与服务器之间传递信息。   

  在JavaScript中可以通过 document.cookie 来读取或设置这些信息。由于 cookie 多用在客户端和服务端之间进行通信,所以除了JavaScript以外,服务端的语言(如php)也可以存取 cookie。

 

注:假如是本地磁盘中的页面,chrome的控制台是无法用JavaScript读写操作 cookie 的,解决办法...换一个浏览器^_^。

 

1.设置cookie

在使用JavaScript存取 cookie 时,必须要使用Document对象的 cookie 属性;一行代码介绍如何创建和修改一个 cookie :

如果要一次存储多个名/值对,可以使用分号加空格(; )隔开

 

document.cookie="userIdsss=666; userNameee=lucas;path=/; domain="www.google.cn; expires=30; secure";  //同时设置多个cookie

 tip:cookie中所有属性均标识绿色

以上代码中’usernameee’表示 cookie 名称,’lucas’表示这个名称对应的值。假设 cookie 名称并不存在,那么就是创建一个新的 cookie;如果存在就是修改了这个 cookie 名称对应的值。如果要多次创建 cookie ,重复使用这个方法即可。
在输入cookie时的名或值中不能包含分号(;)、逗号(,)、等号(=)以及空格(需要使用escape()函数进行编码),在获取cookie时通过unescape()函数把值转换回来。

cookie属性设置为secure(属于https协议,只保证 cookie 与服务器之间的数据传输过程加密,而保存在本地的 cookie文件并不加密。如果想让本地cookie也加密,得自己加密数据。


函数写法

function setCookie(c_name, value, expiredays) 
  var exdate = new Date();    //初始化时间
  exdate.setDate(exdate.getDate() + expiredays);    //设置有效期
  //路径要填写,因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!   document.cookie = c_name + "=" + escape(value) + ";path=/"+((expiredays == null) ? "": ";expires=" + exdate.toUTCString()); //如果给exiredays赋值则标签关闭清除cookie

 

2.获取cookie

简易写法: 

document.write(document.cookie)

 

函数写法:

function getCookie(name)
    var strcookie = document.cookie;//获取cookie字符串
    var arrcookie = strcookie.split("; ");//分割
    //遍历匹配
    for ( var i = 0; i < arrcookie.length; i++) 
        var arr = arrcookie[i].split("=");
        if (arr[0] == name)
            return unescape(arr[1]);
        
    
    return "";

3.删除某cookie

删除一个cookie,可以将其过期时间设定为一个过去的时间或者当前时间,例如:

function clearCookie(name)   
    setCookie(name, "", -1);   //此函数借鉴上面1.设置cookie
  

cookie 有两种清除方式

    • 通过浏览器工具清除 cookie (有第三方的工具,浏览器自身也有这种功能)
    • 通过设置 cookie 的有效期来清除 cookie
    • 注:删除 cookie 有时可能导致某些网页无法正常运行

 

4.检查cookie

function checkCookie() 
    var user = getCookie("username");
    if (user != "") 
        alert("Welcome again " + user);
     else 
        user = prompt("Please enter your name:", "");
        if (user != "" && user != null) 
            setCookie("username", user, 365);  
        
    

 

 5.清除某域名下全部cookie

function clearAllCookie() 
       var keys = document.cookie.match(/[^ =;]+(?=\=)/g);
       if(keys) 
                    for(var i = keys.length; i--;)
                    document.cookie = keys[i] + ‘=0;expires=‘ + new Date(0).toUTCString()
                
            

 待续更新.....

 

以上是关于session,cookie,sessionStorage,localStorage的相关设置以及获取删除的主要内容,如果未能解决你的问题,请参考以下文章

session和cookie的区别是啥?

cookie与session

cookie、session、redis实现单点登录

Cookie和Session

Session和Cookie

如何获取SWT的browser组件的cookie或者session信息