HTTP的基本性质:
(1)HTTP是简单的
(2)HTTP是可扩展的
(3)HTTP是无状态的,有会话的
无状态的意思是同一个客户端和同一个服务器之间的多次请求响应是互相独立的,为了让它们连贯起来(使业务连续),提出了HTTP Cookie。
(1)Cookie是服务器发送到浏览器,并保存在浏览器端的一小块数据(字符串)。
(2)浏览器下次访问该服务器时,会自动携带块该数据,将其发送给服务器。
但是,存到客户端的cookie不太安全,也会对流量性能产生一定影响(Cookie会在浏览器与服务器之间来回传递,需要一定的网络开销)。
另外有一个解决方案Session(本质上它是依赖于cookie的):
(1)是JavaEE的标准,用于在服务端记录客户端信息。
(2)数据存放在服务端更加安全,但是也会增加服务端的内存压力。
总体来说,能用cookie就用cookie,减少服务器端的压力。session用得越来越少了,因为一般大型网站分布式部署,用nginx做粘性策略难以负载均衡,同步session会使服务器之间产生耦合并降低性能,另外用一台服务器来存储共享session则会出现单体问题(非高可用)。
其实若有敏感数据不方便存到cookie里,可以存到数据库集群里。
相关文章: