不懂就問: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)
      }
    }
  }
相關文章
相關標籤/搜索