cookie在客户端记录用户身份
session在服务器端记录用户身份
Cookie
cookie是服务器端颁发的,保存在客户端。在时间到期之前,客户端可以通过请求带上cookie提交给服务器,以此让服务器辨认用户状态。
在控制台输入alert(document.cookie);可以看该网站颁发的cookie
cookie有不可跨域名性,如其名,不能在A网站用B网站颁发的cookie进行身份验证
maxAge属性为有效期,通过getMaxAge()和setMaxAge()来读写属性
当该属性为负数时,有效期为浏览器窗口的存在时间,关闭窗口即cookie失效
当该属性为零时,即代表cookie删除
如果不希望cookie在HTTP这种不安全协议中传输,则可以更改secure属性为true
Session
session对象是用户在第一次请求服务器时创建的,这时服务器还会写一个名为JESSION的cookie返回给客户端,这个cookie的value是session的id。当客户端再次请求时,会拿这个cookie封装在请求头中去请求,然后服务器会根据这个id来查对应的session对象保存的用户状态。
session是每个用户所独立的,生成后,用户每访问一次服务器,服务器都会更新session的最后更新状态,并表示session活跃了一次
如果超过session的有效期没有访问服务器,则该session会被删除
session需要使用cookie来作为识别标志,服务器会向客户端发送一个名为JESSIONID的cookie,该cookie保存的信息是Session的id,session根据该id来识别是否是同一用户
URL地址重写:如果客户端不支持cookie,则会将sessionid写入url中来保持状态