seeion的存储方式:
{"seeionkey":'123'}
是以键值对,也就是字典dict 的方式存储的
http的请求是无状态请求,也就是多次请求之间是不关联的,服务器只需要返回每一次的请求即可;
但有时,多次交互时,需要产生关联,比如历史浏览,登录状态、记住用户等;
所以对应的就是有状态的请求:
这时就需要用到cookie
浏览器本身是具备cookie的,自带的
cookie是浏览器的本地存储机制,存储在浏览器,和服务器没关系,存储账户密码等任何键值对,但是是存储在单个域名下,每个域名之间不能相互访问;
用户在使用浏览器请求时,就会把cookie里的值带过去,这些值也是服务器返回给浏览器的
而session时服务器根据单个用户的用户名和密码生成的一串加密id,存储在服务器端的,用户在首次登录时,服务器会把session发送给用户浏览器,并被浏览器存储在本地cookie中;在做下一次请求时,用户浏览器会通过cookie把sessionid带回给服务器,服务器会通过对session判断这个用户及用户的数据,
以上即可完成自动登录
简单说:
两个都可以用来存私密的东西,同样也都有有效期的说法,区别在于session是放在服务器上的,过期与否取决于服务期的设定,cookie是存在客户端的,过期与否可以在cookie生成的时候设置进去。
(1)cookie数据存放在客户的浏览器上,session数据放在服务器上
(2)cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗,如果主要考虑到安全应当使用session
(3)session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能,如果主要考虑到减轻服务器性能方面,应当使用COOKIE
(4)单个cookie在客户端的限制是3K,就是说一个站点在客户端存放的COOKIE不能超过3K。
(5)所以:将登陆信息等重要信息存放为SESSION;其他信息如果需要保留,可以放在COOKIE中