JS cookie
1、概述
cookie也叫HTTP Cookie,最初是客户端与服务器端进行会话(Session)使用的。
如果没写expires,那么下次打开网页,cookie就会消失,这个就是会话机制
2、格式
name=value; [expires=date]; [path=path]; [domain=somewhere.com];
[secure]
encodeURIComponent函数可以:将文本字符串编码为一个统一资源标识符 (URI) 的一个有效组件
上面的方法主要用于协议、主机名、路径或查询字符串
3、封装函数
设置cookie
function setCookie(name,value,day,path){ var cookieText=encodeURIComponent(name)+"="+encodeURIComponent(value); //encodeURIComponent if(day>0){ var myDate=new Date(); myDate.setDate(myDate.getDate()+day); cookieText+=";expires="+myDate; } if(path){ cookieText+=";path="+path; } document.cookie=cookieText; }
获取cookie
function getCookie(name){ var i=document.cookie.indexOf(name); if(i!=-1){ var start=i+name.length+1; var end=document.cookie.indexOf(";",i); if(end==-1){ end=document.cookie.length; } return document.cookie.substring(start,end); } }
删除cookie
function removeCookie(name){ var i=document.cookie.indexOf(name); if(i!=-1){ var start=i+name.length+1; var end=document.cookie.indexOf(";",i); if(end==-1){ end=document.cookie.length; } let val=document.cookie.substring(start,end); } if(val!=undefined){ document.cookie=name+"="+val+";expires="+new Date(0); } }
cookie的特性
cookie自身局限性
条数上的限制,最多20条
大小上的限制,最多4k(4096字节)
cookie安全性较低,不能存放敏感数据
带宽的浪费
Cookie 通过在客户端记录信息确定用户身份, Session 通过在服务器端记录信息确定用户身份。
cookie 与 session 的区别
cookie 数据存放在客户的浏览器上,session 数据放在服务器上
考虑到安全应当使用 session
session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用COOKIE。