网站的会话机制是什么
优采云 发布时间: 2021-05-14 04:22网站的会话机制是什么
会话是记录客户端状态的另一种机制。区别在于cookie存储在客户端浏览器中,而会话存储在服务器中。当客户端浏览器访问服务器时,服务器以某种形式将会话信息记录在服务器上。当客户端浏览器再次访问时,它仅需要从会话中找到客户端的状态。该会话等效于服务器上的程序创建的用户文件。当用户访问时,只需要查询用户的文件表即可。
会话的生命周期和有效期
为了获得更高的访问速度,服务器通常将会话存储在内存中。每个用户将有一个独立的会话。如果会话内容太复杂,则当大量客户端访问服务器时,可能会导致内存溢出。尽管使用会话比使用cookie更为方便,但是太多的会话存储在服务器的内存中,这将给服务器带来压力。因此,会议中的信息应尽可能简洁。
当用户首次访问服务器时,将自动创建会话。会话生成后,只要用户继续访问,服务器就会更新会话的上次访问时间并维护会话。
随着越来越多的用户访问服务器,会话将越来越多。为防止内存溢出,服务器将从内存中删除长时间未处于活动状态的会话。该时间是会话的超时时间。如果在超时时间到期后仍无法访问服务器,则会话将自动失效。
会话和cookie
尽管会话存储在服务器上,但其正常操作仍需要客户端浏览器的支持。这是因为会话需要使用cookie作为标识标记。 HTTP协议是无状态的,会话无法基于HTTP连接确定它是否是同一客户端。因此,服务器向客户端浏览器发送一个名为SESSIONID的cookie,其值为会话的ID。会话基于cookie识别它是否是同一用户。
对于不支持Cookie的移动浏览器,还有另一种解决方案:URL地址重写。 URL地址重写的原理是将用户会话的ID信息重写为URL地址,服务器可以解析重写的URL以获得会话ID。这样,即使客户端不支持cookie,该会话也可以用于记录用户状态。
应用场景
通过会话采集用户数据。例如,尚未登录的用户访问了京东网站。这时,京东向它发送一个cookie。如果cookie的名称为abc,则此记录为abc = 001。同时,京东的后端也会生成一个会话ID。 ,其值也是001。客户001在2点,3点和4点向购物车中添加了3个商品,因此背景还记录了购物车中已经有3个商品会话ID为001的用户的ID。并且只要客户端cookie带来的值收录会话ID,后台就可以显示相应的数据。如果这一次在浏览器中清除了cookie,并且cookie数据消失后,后台与客户端无法建立对应关系,则购物车数据将无效。
通过会话实现单点登录。成功登录用户帐户后,您将无法在会话到期之前登录其他计算机上的同一帐户。登录后,将用户信息保存在会话中。如果此时请求使用同一帐户在另一台计算机上登录,请遍历(遍历意味着一次查看所有会话)Web服务器中的所有会话并确定其中是否收录如果您具有相同的用户信息,则无法登录到另一台计算机上的帐户。