cookie是为了解决HTTP无状态的特性无法满足交互式web
什么是cookie?
由于HTTP 是一种无状态的协议,服务器单从网络连接上是无法知道客户身份的。这时候服务器就需要给客户端颁发一个cookie,用来确认用户的身份。
什么是session?
Session是另一种记录客户状态的机制,不同的是Cookie保存在客户端浏览器中,而Session保存在服务器上。
什么是localStorage?
localStorage 是 HTML5 提供的一个 API,他本质上是一个hash(哈希表),是一个存在于浏览器上的 hash(哈希表)。
Cookie常用的方法
void setMaxAge(int age) 设置Cookie的有效时间,单位为秒
int getMaxAge() 获取Cookie的有效时间
String getName() 获取Cookie的name
String getValue() 获取Cookie的value
我们可以利用new Date() 的 setTime和getTime来设置失效时间
Cookie并不提供修改、删除操作
如果要修改某个 Cookie,只需要新建一个同名的 Cookie,添加到 response 中覆盖原来的Cookie。
如果要删除某个 Cookie ,只需要服务端新建一个同名的 Cookie ,并将 maxAge 设置为0,并添加到 response 中覆盖原来的 Cookie。注意是0而不是负数。负数代表其他的意义。
注意:修改、删除Cookie时,新建的Cookie除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。
var storage = window.localStorage;
// 写入字段的三种方式
storage['a'] =1;
storage.b = 2;
storage.setItem('c',3);
console.log(typeof storage['a']);
console.log(typeof storage['b']);
console.log(typeof storage['c']);
}