网站内容更新机制( “cookie”和“session”做一些简单的小总结 )

优采云 发布时间: 2022-02-23 14:13

  网站内容更新机制(

“cookie”和“session”做一些简单的小总结

)

  

  今天,我将对“cookie”和“session”做一些简单的总结,以帮助我们在产品设计上更好地与开发者沟通。

  Cookie和会话是互联网中使用的一项基础技术——会话(用户与客户端的交互)跟踪技术,用于跟踪用户的整个会话。简单地说,cookie通过在客户端记录信息来确定用户的身份,而会话通过在服务器端记录信息来确定用户的身份。

  cookie 定义

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

  cookie 机制

  Cookie 生成(java 代码示例):

  Cookiecookie = new Cookie("key", "value");

  cookie.setMaxAge(60); //设置cookie的生存时间为60秒

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

  cookie 会附加到请求资源的 HTTP 请求头中并发送给服务器,服务器会通过相应的方法获取 cookie。

  cookie 属性

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

  应用场景判断注册用户是否已经登录网站: 用户下次输入该网站时,可能会提示是否保留用户信息,以简化登录过程。根据用户的爱好自定义内容:网站创建收录用户浏览内容的cookies。当用户下次访问时,网站根据用户的情况调整显示的内容,将用户感兴趣的内容放在最前面。实现永久登录:如果用户在自己的电脑上上网,登录时可以记住自己的登录信息,下次访问时无需再次登录,直接访问即可。实现自动登录:当用户注册网站时,他们将收到一个带有唯一用户 ID 的 cookie。当用户再次连接时,会自动返回这个用户ID,服务器会检查判断是否是注册用户并选择了自动登录,这样用户就可以访问服务器上的资源,而无需给出明确的用户名和密码。使用cookies记录每个用户的访问次数:获取cookie数组中专门用于统计用户访问次数的cookie的值,将该值加1,输出最新的cookie。使用 cookie 来记住用户名和密码。如果用户勾选了“自动登录”,则将用户名和密码信息放入 cookie 中。同时可以设置有效期。使用cookies实现新手礼包等弹窗功能。同样的方式,将新手大礼包弹窗的逻辑写入cookie中,并设置相应的有效期。例如弹窗在有效期内只弹出一次,在有效期后登录后再次弹窗。会话定义

  Session 是另一种记录客户端状态的机制,区别在于 cookie 存储在客户端浏览器中,而 session 存储在服务器上。当客户端浏览器访问服务器时,服务器以某种形式将客户端信息记录在服务器上,这就是会话。当客户端浏览器再次访问时,只需要从会话中查找客户端的状态即可。会话相当于由服务器上的程序创建的用户配置文件。用户访问时,只需要查询*敏*感*词*表即可。

  会话生命周期和有效期

  服务器为了获得更高的访问速度,一般会将会话放在内存中。每个用户将有一个单独的会话。如果会话内容过于复杂,可能会在大量客户端访问服务器时造成内存溢出。虽然使用 session 比 cookie 方便,但是太多的 session 存储在服务器内存中,会给服务器带来压力。因此,会话中的信息应尽可能简洁。

  当用户第一次访问服务器时,会自动创建一个会话。会话生成后,只要用户继续访问,服务器就会更新会话的最后一次访问时间并保持会话。

  随着越来越多的用户访问服务器,将会有越来越多的会话。为防止内存溢出,服务器会从内存中删除长时间未激活的会话。这个时间是会话超时。如果在超时时间之后还没有访问服务器,会话将自动失效。

  会话和 cookie

  虽然会话存储在服务器上,但它的正常运行仍然需要客户端浏览器的支持。这是因为会话需要使用 cookie 作为标识符。HTTP协议是无状态的,session不能根据HTTP连接判断是否是同一个客户端,所以服务器会向客户端浏览器发送一个名为SESSIONID的cookie,其值为session的id。Session 根据这个 cookie 识别是否是同一个用户。

  对于不支持cookies的手机浏览器,还有另一种解决方案:URL地址重写。URL地址改写的原理是将用户会话的id信息改写成URL地址,服务端可以解析改写后的URL得到会话id。这样,即使客户端不支持cookies,也可以通过session来记录用户状态。

  应用场景通过会话积累用户数据。例如,未登录的用户访问京东 网站。这时,京东会向它发送一个cookie。假设cookie的名字是abc,那么这条记录就是abc=001。同时,京东后台也会生成一个cookie。session id,它的值也是001, 001 客户在2:00, 3:00, 4:00 分别在购物车中添加了三件商品,所以后台也记录了session id为001的用户已经有三件商品了购物车商品,只要客户端cookie带来的值中收录session id,后台就可以显示相应的数据。如果此时在浏览器中清除cookie,在cookie数据消失后,后台与客户端无法建立对应关系,购物车数据将无效。单点登录是通过会话实现的。用户帐号登录成功后,在会话过期之前,无法登录其他机器上的同一个帐号。登录后,将用户信息保存到会话中。如果此时请求同一个账号登录另一台机器,通过遍历(遍历的意思是查看所有会话)web服务器中的所有会话,判断它们是否收录相同的用户信息,如果有,则无法登录该账号在另一台机器上。

  以上是cookies和sessions的简要总结。你学会了吗?

  作者:刘念,互联网产品设计师,4年互联网产品设计经验。

  本文由@刘年原创发表于人人都是产品经理。禁止任何未经许可的复制。

  作者提供的标题图片

  奖励作者,鼓励TA抓紧创作!

  欣赏

  4人奖励

  

  

  

  

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线