介绍
- 由于HTTP是无状态协议,所以服务端需要记录用户的状态时,就需要使用某种机制来识别具体的用户,这个机制就是
session
,典型的场景比如购物车,当你下单时,由于http无状态的特性,所以并不知道是哪个用于操作的,所以服务端需要为特定的用户创建特定的session
,用于标识这个用户。这个session
是保存在服务端的,有个唯一标识session id
。 - 每次HTTP请求时,客户端都会发送相应的
cookie
信息到服务端,实际上大多数应用都是用Cookie
来实现session
跟踪的,当第一次创建session
时,客户端会储存一个session id
,以后每次请求都会带上session id
,从而给服务器发送用户标识。
如果用户禁用cookie,如何标识?
- 这时候就需要用到
URL重写
技术,在查询参数后面带上session id
,从而让服务器接收标识。
总结
- Session:是服务端保存的一个数据结构,用来跟踪用户状态,这个数据可以保存在集群,数据库,文件中。
- Cookie:是客户端保存用户信息的一种机制,用来记录用户的一些信息,也是实现
session
的一种方式。