1. 关于Cookie
Cookie是一种客服端技术,用来在客户端保存数据。客服端同时可以可以保存多个cookie。一个cookie包含
name、value、expires、path、domain五个部分。一个cookie的ID由name、path、domain组成,即当name、path、domain相同时两个cookie是同一个cookie.
在客户端,通过js可以操作cookie。
写一个cookie(注意,只写一个cookie,不影响其他cookie)方式是
document.cookie = "name=value;
expires=; path=/path/; domain=";
读所有cookie(注意,一次读出所有cookie)的方式是
var cookies = document.cookie
返回的结果是string,形式为 name1=value1; name2=value2。因为expires、path、domain不可读,所有不显示。
在客服端根据cookie的expires时间将cookie保存在不同的地方
当expires存在时那么将cookie保存在磁盘上。当expires不存在时,那么就是用默认值。默认值时,cookie的有效期是浏览器进程的生命周期,这个时候将cookie保存在进程的数据空间。
当客户端向server发送请求时,客服端会将domain, path相匹配的cookie发送给server,在sever端可以访问这些cookie。
2. 关于Session
Session是一种在server端保存数据的技术。每个session有一个session id。session需要使用cookie,来在客服端保存session id。
这个cookie的name是JSESSIONID、expires是默认值、path是当前web app的context path。
在客户端你可以通过JS对这个cookie进行操作。例如浏览器不关闭,强行让当前Session失效
expireDate = new Date();
expireDate.setYear(expireDate.getYear() -1);
document.cookie = "JSESSIONID=;expires=" + expireDate.toGMTString() + ";path=<%=request.getContextPath()%>";