不懂就问:cookie和session对比(一、cookie)

cookie是储存在用户本地终端上的不超过4KB的小型数据浏览器

简单说明:安全

/**
 * 经常使用
 * @name username    cookie名称
 * @name expires     设置cookie的过时时间(UTC或GMT时间)。默认状况下,cookie在浏览器关闭时删除
 * 其余
 * @name path        定义了Web站点上能够访问该Cookie的目录
 * @name domain      指定了能够访问该 Cookie 的 Web 站点或域
 * @name secure      指定是否使用HTTPS安全协议发送Cookie
 * @name HTTPOnly    用于防止客户端脚本经过document.cookie属性访问Cookie
 **/
 
// 设置 cookie
document.cookie = "username=jimmy; expires=Mon, 16 Nov 2020 12:00:00 GMT";

// 获取 cookie
var cookie = document.cookie;

// 删除 cookie
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";

完整示例:cookie

/**
   * 设置 cookie
   * @params name        键
   * @params value       值
   * @params exitDays    过时时间(天)
   **/
  function setCookie(name, value, exitDays) {
    var cookieText = name + '=' + value + '; '
    var date = new Date()
    var time = exitDays * 24 * 60 * 60 * 1000
    date.setTime(date.getTime() + time)
    var expiresText = 'expires=' + date.toGMTString()
    document.cookie = cookieText + expiresText
  }

  // 获取 cookie
  function getCookie(name) {
    var text = name + '='
    var cookieArr = document.cookie.split(';')
    for (var i = 0; i < cookieArr.length; i++) {
      var cookieItem = cookieArr[i].trim()
      if (cookieItem.indexOf(text) == 0) {
        return cookieItem.substring(text.length, cookieItem.length) // 截取value值
      }
    }
    return ''
  }

  // 删除 cookie
  function delCookie(name) {
    var cookieText = name + '=; '
    var expiresText = 'expires=Thu, 01 Jan 1970 00:00:00 GMT'   // 比当前时间早
    document.cookie = cookieText + expiresText
  }

  // 检测 cookie
  function checkCookie() {
    var user = getCookie('username')
    if (user != '') {
      alert('欢迎 ' + user + ' 再次访问')
    } else {
      user = prompt('请输入你的名字:', '')
      if (user != '' && user != null) {
        setCookie('username', user, 30)
      }
    }
  }
相关文章
相关标签/搜索