前端创建设置cookie
/** * 创建并设置cookie * @param name cookie名称 * @param value cookie值 * @param expires 过期时间 毫秒 不填则默认30分 */ function Setcookie(name, value, expires) { //设置名称为name,值为value的Cookie expires = expires || 30* 60 * 1000; var expdate = new Date(); //初始化时间 expdate.setTime(expdate.getTime() + expires); //时间 //即document.cookie= name+"="+value+";path=http://www.likecs.com/"; 时间可以不要,但路径(path)必须要填写, // 因为JS的默认路径是当前页,如果不填,此cookie只在当前页面生效!~ document.cookie = name + "=" + value + ";expires=" + expdate.toGMTString() + ";path=http://www.likecs.com/"; }前端获取cookie属性值
/** * 获取对应cookie属性的value * @param c_name cookie属性name * @returns {string} cookie value */ function getCookie(c_name) { if (document.cookie.length > 0) { c_start = document.cookie.indexOf(c_name + "="); if (c_start != -1) { c_start = c_start + c_name.length + 1; c_end = document.cookie.indexOf(";", c_start); if (c_end == -1) c_end = document.cookie.length; return unescape(document.cookie.substring(c_start, c_end)); } } return ""; } 4. 总结1、cookie数据存放在客户的浏览器上,session数据放在服务器上。
2、cookie不是很安全,别人可以分析存放在本地的cookie并进行cookie欺骗,考虑到安全应当使用session。
3、session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,考虑到减轻服务器性能方面,应当使用cookie。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。
5、可以考虑将登录信息等重要信息存放为session,其他信息如果需要保留,可以放在cookie中。
6、在程序开发过程中,我们可以在客户端每次与服务器交互时检查SessionID(Session中属性值,非HttpServlet环境开发中也可以用其它的Key值代替),用于会话管理。
原文:https://zhuanlan.zhihu.com/p/83576917