国家重大项目建设库网站,wordpress代码复杂吗,2022二建价格疯涨,wordpress读不出媒体库Session和Cookie是什么#xff1f;有什么区别#xff1f;分布式Session问题又是什么#xff1f;
Cookie#xff1a;是服务器发送到浏览器并保存在本地的数据。在浏览器下一次向同一服务器再次发送请求时#xff0c;将Cookie也发送给服务器#xff0c;并以此来判定这个请…Session和Cookie是什么有什么区别分布式Session问题又是什么
Cookie是服务器发送到浏览器并保存在本地的数据。在浏览器下一次向同一服务器再次发送请求时将Cookie也发送给服务器并以此来判定这个请求是否是浏览器第一次发送的请求。至于是怎么判定的会在下面的Cookie和Session配合中说到。Session代表浏览器和服务器的一次会话。Session存储用户会话所需的属性和配置信息。
Session和Cookie的区别
保存位置不同Session保存在服务器端Cookie保存在浏览器。正因如此Cookie在保存数据方面的安全性不如Session所以Cookie用来保存一些隐私性不强的内容比较合适。存取内容的方式不同Cookie只能保存ASCLL而Session可以保存任意类型。数据存储的大小不同Cookie只能保存小于4K的内容而Session则大小不固定但肯定的是其大小要比Cookie大的多。
Session和Cookie的配合流程 在用户第一次向服务器发送请求时服务器会根据用户的信息不同创建不同的Session并生成该Session的唯一标识SessionID返回给浏览器。浏览器在接收到SessionID后会将SessionID保存在Cookie中并记录这个SessionID属于哪个域名。
在用户第二次请求服务器时请求会去查找该域名下是否存在Cookie存在就将Cookie发送给服务器。服务器会从Cookie中拿到SessionID并根据这个SessionID查找到对应的Session。
分布式Session问题 在上面的配合流程中我们就会发现一个问题在分布式环境下服务器肯定不止一个而Session是保存在服务器的。那如果多服务器的环境下两次的请求发送到不同的服务器那不就造成SessionID查找不到对应的Session了吗 这就是分布式Session问题。
解决办法
Nginx服务端使用Nginx进行代理每个请求按照请求的IP的hash进行分配服务器保证同一IP的请求都会发送到同一服务器。Session复制任意一台服务器的Session发生改变的时候都会广播给所有服务器。中间件将Session保存在一个中间件中。