因为我们都知道http是无状态的协议,所以服务器需要记录用户的状态时,需要使用某种机制去识别具体的用户!这个机制就 是 session!
比如购物车: 当你点击下单时,由于http是无状态的协议,所以根本无法知道是那个用户所要进行的操作所以在服务端要为用户创建特定的session,用来标识这个用户,且跟踪用户,这样才会知道你购物车里面的内容,这个session 是 保 存 在服务器端的,并且有唯一标识,在服务器端保存session的方法有很多,内存、数据库、文件都有!集群时候也要考虑session的转移!一般大型网站,都有专门的session服务器集群,用来保护用户的对话信息,这时候一般session信息都是b保存在内存。
但是问题来了,服务器端如何特定的去识别客户端? 每次HTTP请求后,客户端都会发送相应的cookie信息到服务端,用cookie来实现session的会话跟踪。第一次创建session的时候(也就是第一次会话时),服务器端会在HTTP协议中告诉客户端,需要在cookie里面记录一个Session ID ,以后每次请求的时候即把这个session ID发送过来让我识别即可!如果客户端的cookie被禁用,会使用一种叫做URL重写的技术来进行会话跟踪,即每次http请求,URL后面应付加上session id=**这样的参数,服务器根据这个来识别! session是服务端保存的一个数据结构,用来跟踪用户的状态,这个数据可以放在集群、数据库、文件中! cookie是客户端用来保存信息的一种机制,用来记录用户的一些信息,也是实现session的一种方式!