cookie 和 session
cookie
Cookie意为甜饼,是一种身份认证证明,由于http是一种无状态的协议,服务器单从网络连接上无从知道客户身份,于是服务器就给客户端们颁发了一个通行证,每人一个,无论谁访问都必须携带通行证,这样就能确定客户的身份。这就是cookie的原理
cookie是一小段文本信息,当客户端请求服务器时,如果服务器需要记录用户状态,就通过response对客户端颁发cookie,客户端就会把cookie保存起来。借此以后请求的时候,就会带着cookie一起请求,来辨认用户状态,服务器还可以根据需要修改cookie的内容。
cookie用来管理服务器和客户之间的状态。
session
session是另一种记录客户状态的机制,不同的是cookie保存在客户端浏览器,但是session保存在服务器上,客户端浏览器访问服务器的时候,服务器把客户端信息以某种形式记录在服务器上,这就是session。之后客户端浏览器再次访问时就只需要从session中查找该客户状态就可以了。
session会在cookie中出现和传输,属于cookie的一部分。
当web服务器开启会话机制时,用户登陆成功后,会将会话保存在服务器中。
如果说Cookie机制是通过检查客户身上的“通行证”来确定客户身份的话,那么Session机制就是通过检查服务器上的“客户明细表”来确认客户身份。Session相当于程序在服务器上建立的一份客户档案,客户来访的时候只需要查询客户档案表就可以了。
cookie和session的不同
- 数据存放位置不同。
cookie存放在客户的浏览器上,session存在服务器上。
安全程度不同。
cookie不是很安全,别人可以分析放在本地的cookie进行cookie欺骗,考虑到安全应当使用。
性能使用程度不同
session会在一定内保存在服务器上,当访问增多,会占用较多服务器性能。为了减轻服务器压力,应该使用cookie
数据存储大小不同
单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie,而session则存储与服务端,浏览器对其没有限制。cookie数据保存在客户端的浏览器,session数据保存在服务器端。
会话机制不同
session会话机制:session会话机制是一种服务器端机制,它使用类似于哈希表(可能还有哈希表)的结构来保存信息。
cookies会话机制:cookie是服务器存储在本地计算机上的小块文本,并随每个请求发送到同一服务器。 Web服务器使用HTTP标头将cookie发送到客户端。在客户端终端,浏览器解析cookie并将其保存为本地文件,该文件自动将来自同一服务器的任何请求绑定到这些cookie。