session与cookie的区别与联系

  session在服务端,cookie在客户端(也就是浏览器)

  由于http协议是无状态的协议,所以在数据交换完毕后,C/S端的连接就会关闭。此时,服务器无法从连接上跟踪会话,而cookie可以跟踪会话,这就弥补了http无状态协议的不足。cookie保存在客户端,如果客户端的服务器禁用了cookie,可以使用url重写技术来进行会话跟踪,就是每次http交互的时候,url后面都会被附加上一个类似sid=xxx的参数,服务端读取sid参数来识别用户。每次http请求时,客户端都会发送相应的cookie信息到服务端,这样服务端就知道这个用户是谁了。

  当服务端需要记录用户的状态时,就需要一种机制来识别具体的用户,这样一种机制是存在于服务端和客户端之间的,我们把他叫做session(会话),一开始session是一个抽象概念,存在与服务端和客户端之间的一对一的交互称为session会话。不像cookie是一个实际存在的东西,http协议中定义在header中的字段。但是要跟踪用户的状态就要记录用户的状态,所以session就变成了一个实体,同时大多数应用都是用cookie来实现session跟踪的。session主要是看sessionID,第一次创建sessionID时,服务端会在http协议中告诉客户端,我将会在cookie里面记录一个sessionID。

posted @ 2018-03-16 18:15  真的是从入门开始  阅读(236)  评论(0编辑  收藏  举报