最专业的代练平台开发!

资讯热点
简单理解cookie /会话机制

发布时间:2023-6-4 分类: 行业动态

今天,我们将做一些简单的“cookies”和“cookies”摘要,以帮助我们更好地与产品设计中的开发兄弟沟通。

Cookie和会话应用于Internet中的基本技术——会话(用户 - 客户端交互)跟踪技术,用于跟踪用户的整个会话。简单地说,cookie通过在客户端上记录信息来确定用户的身份,而会话通过在服务器上记录信息来确定用户的身份。

饼干

定义

Cookie是服务器传递给客户端的小型纯文本文件。客户端请求服务器,如果服务器需要记录用户的状态,它会向客户端浏览器发送cookie。客户端浏览器将保存cookie。当浏览器再次请求网站时,浏览器将请求的URL连同cookie一起提交给服务器。服务器检查cookie以识别用户的状态。

Cookie机制

Cookie生成(java代码示例):

Cookie Cookie=新Cookie(&ndquo; key”,” value”);

cookie.setMaxAge(60); //将cookie的生命周期设置为60秒

cookie.setPath(“/test”); //设置cookie的路径

使用请求资源的HTTP请求头将cookie发送到服务器,服务器通过相应的方法获取cookie。

Cookie属性

cookie的主要属性包括:名称,值,到期时间,路径和域:

路径与域一起构成了cookie的范围。

到期时间:对于会话cookie,如果未设置到期时间,则表示此cookie的生命周期是在浏览器会话期间。当浏览器窗口关闭时,cookie消失,会话cookie通常存储在内存中。对于持久性cookie,设置过期时间,浏览器将cookie保存在硬盘上,存储在硬盘上的cookie在不同的浏览器进程之间共享。

名称:只需给cookie一个名字。

值:cookie中记录的信息内容。

应用场景

确定注册用户是否已登录网站:用户可能会在下次进入网站时提示保留用户信息以简化登录过程。

根据用户的偏好自定义内容:网站创建包含用户浏览内容的cookie。当用户下次访问时,网站根据用户的情况调整显示的内容,并将感兴趣的内容放在最前面。

要实现永久登录:如果用户在其家用计算机上上网,他可以在登录时记住他的登录信息。您无需在下次访问时再次登录,即可直接访问。

实施自动登录:当用户注册网站时,他们会收到一个具有唯一用户ID的cookie。当用户再次连接时,将自动返回用户ID,服务器会检查它以确定它是否是注册用户并选择自动登录,以便用户可以访问服务器上的资源而无需提供明确的用户名和密码。

使用cookie记录每个用户的访问次数:获取cookie数组中用于计算用户访问次数的cookie值,将值加1并输出最新的cookie。

使用cookie记住用户名和用户密码。用户选择“自动登录”,并将用户名和密码信息放入cookie中。同时,可以设置有效期。

使用cookie来实现弹出功能,如新手狂欢。类似地,新手狂欢弹出窗口逻辑被写入cookie并且设置相应的到期日期。例如,弹出窗口在有效期内仅弹出一次,弹出窗口在有效期到期后再次弹出。

会话

定义

会话是另一种记录客户端状态的机制。不同之处在于cookie存储在客户端浏览器中,会话保存在服务器上。当客户端浏览器访问服务器时,服务器以某种形式在服务器上记录客户端信息。这是会议。当客户端浏览器再次访问时,它只需要从会话中查找客户端的状态。该会话等同于服务器上的程序创建的用户文件。当用户访问时,只需要查询用户文件表。

会话生命周期和有效期

为了实现更高的访问速度,服务器通常将会话置于内存中。每个用户都有一个单独的会话。如果会话内容过于复杂,则当大量客户端访问服务器时,会导致内存溢出。虽然会话的使用比cookie更方便,但是在服务器的内存中存储的会话太多,这给服务器带来了压力。因此,会话中的信息应尽可能简洁。

用户首次访问服务器时会自动创建会话。生成会话后,只要用户继续访问,服务器将更新会话的上次访问时间并维护会话。

随着越来越多的用户访问服务器,将会有越来越多的会话。为防止内存溢出,服务器将长时间从内存中删除活动会话。此时间是会话的超时时间。如果服务器的访问时间超过超时时间,则会话将自动过期。

会话和cookie

虽然会话保存在服务器上,但其正常操作仍需要客户端浏览器的支持。这是因为会话需要使用cookie作为识别标记。 HTTP协议是无状态的。会话无法基于HTTP连接确定它是否是同一客户端。因此,服务器将名为SESSIONID的cookie发送到客户端浏览器,其值是会话的ID。会话基于cookie识别同一用户。

对于不支持cookie的移动浏览器,还有另一种解决方案:URL地址重写。 URL地址重写的原则是将用户会话的id信息重写为URL地址,服务器可以解析重写的URL以获得会话的id。这样,即使客户端不支持cookie,您也可以使用会话来记录用户状态。

应用场景

通过会话累积用户数据。例如,未注册的用户访问了京东网站。这时,京东向它发了一个饼干。假设cookie的名称是abc,记录是abc=001,京东的背景也生成会话ID。该值也是001,001。客户在2,3和4处向购物车添加了三个项目,以便后台还记录了会话ID为001的用户已经在购物车中有三个项目,并且每次客户端cookie的值包含在会话ID中时,后台都可以显示相应的数据。如果这个时候,cookie在浏览器中被清除,在cookie数据消失后,后台和客户端无法建立对应关系,购物车数据将无效。

通过会话单点登录。用户帐户成功登录后,在会话过期之前,同一帐户无法登录到其他计算机上。登录后,将用户信息保存到会话中。如果此时请求在另一台计算机上的同一帐户登录,则遍历(遍历意味着查看所有会话)Web服务器中的所有会话并确定是否包含该会话。相同的用户信息(如果有)无法登录到另一台计算机上的帐户。

以上是cookie和会话的简单摘要。你学会了吗?

作者:转瞬即逝,互联网产品设计师,4年互联网产品经验。

本文最初由@流年发表。未经许可,禁止复制。

该地图由作者提供

« Futu Securities:不是很性感但非常稳定,腾讯音乐IPO成为全球首个市值音乐巨头 | 而信:互联网贷款市场起伏的调节加速净化 »