一,什么是会话
何为会话:
在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session)。
典型会话场景:
- 浏览视频网站,观看视频,昨天刚看了一段,今天打开网站,显示你昨天观看的历史记录。 前两天我在京东上逛了半天,看了一些手机,今天一打开网易,结果就推送一堆的手机广告淘宝购物,在浏览的时候,将某个商品加入了购物车,第二天再次登录,购物车中还有商品,针对网站的某些页面,如果你没有登录,就不能访问…
以上现象,对于浏览器来说,需要维护用户的状态,因此引入了两种会话技术:
- cookie
- session
其中,cookie是基于客户端(浏览器)的会话技术,而session是基于服务端的会话技术。session通常都会依赖cookie的。
二,何为cookie
Cookie意为“甜饼”,是由W3C组织提出,最早由Netscape社区发展的一种机制。目前Cookie已经成为标准,所有的主流浏览器如IE、chrome、Firefox、Opera等都支持Cookie。
1. cookie的格式
Set-Cookie:name=value;expires=date;path=/directory;domain=.xx.com;secure
包含5个部分:
- name = value,键值对,表示cookie的名称。必选
- expires = date,指定cookie失效的时间,如果没有指定,则cookie不会写入磁盘,只持续到当前会话结束(通常就是关闭浏览器)。该属性值date必须以特定的格式来书写:星期几,DD-MM-YY HH:MM:SS GMT,GMT表示这是格林尼治时间。反之,不以这样的格式来书写,系统将无法识别。
- path = /directory,只有访问/directory下面的页面时,cookie才被发送。如果指定了path,但path与当前访问的url不符,则此cookie被忽略。如果缺省,path的属性值为web服务器传给浏览器的资源的路径名。
- domain=.xx.com,指定cookie被发送到哪台计算机上。正常情况下,cookie只被送回最初向用户发送cookie的计算机。如果设置domain=xx.com,则cookie会被发送到任何在xx.com域中的主机。如果domain为空,domain就设置