专栏首页姬小光如何定义和统计用户的登录次数?

如何定义和统计用户的登录次数?

正文约 2000 字,阅读大约需要 6 分钟

目标读者:0-3 岁产品运营

技术难度:★☆☆☆☆

大家好,我是姬小光,欢迎来到我的专栏!本期我们来聊聊互联网产品的登录是怎么回事儿,以及如何合理地定义用户的登录次数。

那就先从我们浏览网页开始说吧。当我们打开浏览器的时候,输入一个网址,敲了回车之后,就向远程服务器发送了一个请求。这里的远程服务器,可以理解为另外一台电脑,上面存着你想要的东西。那么,这个远程服务器收到你的请求之后,就会返回给你特定的内容。

这个一来一回的过程,是无状态的。什么意思呢?就是说,如果你再执行一次同样的动作,远程服务器是不知道你前面已经操作过的,这个,就叫做无状态。

那为啥不能有状态呢?这个是由互联网基础设施 HTTP 协议的特性所决定的,现阶段就是如此,不必纠结。

那么,无状态的问题在哪里呢?很明显,作为服务端,不管你来了多少次,我还是不认识你。即使你直接告诉我,你是某某某,我也只能说:我并不能验证你到底是谁。

因此,为了能够实现更复杂的功能,就有了 Cookie 和 Session 技术。前者,你可以理解为,服务器在你的浏览器里,存了一小段数据;而后者,你可以理解为,服务器自己拿小本本记录了,跟你相关的一小段数据。

所以整个过程就变成这样了:浏览器发送请求的时候,带上了 Cookie,告诉服务器你是谁。服务器拿到 Cookie 后,验证你是你,并且将你的状态记录在 Session 中。那么,从技术上来讲,登录的过程就是:你提交给服务器一些信息,服务器验证通过之后,开始为你服务,并且记录了你的状态。这个过程就叫做会话。顾名思义,这就好像你在跟服务器谈话交流,交流之前要先认识一下,然后服务器就记住你了。而只要服务器还记得你,你就是有“登录态”的,我们后面会用到这个概念。

那么,服务器记住你之后,如果你再也不来了呢?要过多久才能把你忘记呢?这就涉及到了,会话的有效期。我们假设,最极端的情况下,有效期为 0 秒。那就退回到了无状态的阶段,就是啥也记不住,再来几遍我也不认识你。

那要是有效期是一万年呢?就是这一万年里,你随时来我都记得你。

大家可以想一下,首先,记一万年,脑子肯定要很强大了,那对应的就是服务器的存储空间要很大,浪费资源;其次,服务器认识你,是通过 Cookie 中的凭证,而不是人脸识别,人脸识别的话可以另说。那这个 Cookie 就可能被别人盗取,别人拿着你的身份来验证,也能通过,这就可能泄露你的个人信息。所以你看,会话的有效期设置也是一门艺术,适当的时候,还是要再重新验明正身才行。

但是,如果你一直操作的话,大部分的网站都会对会话进行续期。试想一下,你跟一个人明明一直在聊天,他忽然说我不认识你了,请出示身份证,那场景该有多尴尬。网站也是一样的,如果你处在会话有效期内,并且一直有动作,那么系统会在即将过期的时候给你续上,让你进入下一个有效期,至于续多久,那就看系统的策略了。

好了,回到我们最初的问题。假设你去网吧包夜,登录并浏览了某个图片视频网站,连续看了七天七夜,这算登录几次呢?

如果你定义这是一次登录,那么按照登录来统计用户的活跃度就会有问题,这个用户明明活跃了七天,却只记录了一次活跃。这里要想统计真正的活跃,就要看看,这个用户在七天内的 PV,也就是说,我们要拿到带有用户登录态的页面浏览数据,才能统计真正的活跃,只看登录次数是不行的。

我们再假设一种情况,你包夜浏览了两天图片视频网站,然后关掉了浏览器,打了一天的游戏,又回来继续浏览图片视频网站。发现不用重新输入用户名和密码,直接打开页面就能继续浏览,那这算登录几次呢?

从行为上看,你明明是两次打开浏览器,进入网站,但是只输入了一次用户名和密码,因为服务器的会话有效期大于两天,所以不用重新输入也能使用。那么,这种情况下,如果想记录为两次活跃,只看登录次数也是不行的。

所以你看,严格意义上来说,用户的登录次数,就是输入用户名密码,并且验证通过的次数。但对于业务来说,这个数据意义并不大。因为会话有效期可能一直续期,也可能卡在需要续期的时间点,用户并没有操作,然后当用户想操作的时候,立马又需要重新登录。所以,登录次数的意义不大,要结合续期情况和用户的具体行为分析,才有意义。

综上所述,你说的登录次数,可能跟我说的登录次数,完全不是一回事,所以,如果要统计你说的登录次数,就要清楚地描绘出用户的具体行为,比如带有登录态的时候,每次打开我们的网站,就算一次登录,类似这种。这样一来,登录次数的口径,其实就变成了业务指标,所以你也不用太纠结技术上是什么定义了,了解一下原理就够了。

文章分享自微信公众号:
姬小光

本文参与 腾讯云自媒体分享计划 ,欢迎热爱写作的你一起参与!

作者:姬小光
原始发表时间:2020-03-02
如有侵权,请联系 cloudcommunity@tencent.com 删除。
登录 后参与评论
0 条评论

相关文章

  • 用户登录错误失败次数过大后,如何自动锁定?

    我们在开发中都对平台的安全性做了强调,无论是鉴权机制还是https,都是对安全性的进一步提升。部分用户还是会担心将EasyDSS流媒体服务部署完毕后,遭到网络爆...

    TSINGSEE青犀视频
  • 求连续操作(登录)数量(次数)最大的记录(用户)

    昨晚上老同事聚会,一个同事说道一个面试问题没有一个人做出来,就是求连续日期登录次数最大的用户,同事说借助 rownumber即可求解,由于是喝酒聊天,也没有说详...

    用户1177503
  • Python中如何统计文本词汇出现的次数?

    有时在遇到一个文本需要统计文本内词汇的次数的时候,可以用一个简单的python程序来实现。

    小小科
  • Python 统计次数,我的方法和高手的方法

    kk大数据
  • Windows服务器如何配置远程登录和多用户登录

    先点“关闭”→再点“是”提示重启,重启后登录www.qcloud.com→管理中心→控制台→云服务器→右侧“登录”

    云知识Online
  • 如何在WordPress网站之间共享用户和登录

    wordpress为网站系统提供了相同的数据表结构,为快速实现多个WordPress网站之间共享用户数据提供了可能。wordpress如何实现如网易通行证等大站...

    许都博客
  • 统计字符串中字符出现的次数(||和&&的区别)

    ProsperLee
  • 如何优雅的统计List集合中元素重复出现次数

    统计List集合中元素出现的次数,相信大家都做过。举个例子,我们要统计集合中名字重复的次数。

    Lvshen
  • 数亿的用户,如何统计独立用户访问量?

    众所周至,拼多多的待遇也是高的可怕,在挖人方面也是不遗余力,对于一些工作3年的开发,稍微优秀一点的,都给到30K的Offer,当然,拼多多加班也是出名的,一周上...

    程序员小明
  • Linux如何查询当前登录的用户信息?

    如果只是想查看当前登录的用户名,那么很简单,直接使用命令:whoami即可 示例:

    用户1685462
  • Python之简单的用户登录和注册

    #!/bin/bash/env python # -*- coding:utf-8 -*- def login(username,password): ...

    用户1173509
  • Laravel5.5 实现后台管理登录的方法(自定义用户表登录)

    最近群里很多人文档,laravel如何做会员和管理两个身份登录,今天把教程分享一下

    砸漏
  • mongodb的用户登录认证和基本使用

    连接: killall mongo mongo --host 127.0.0.1:27017 创建超级管理员 >use admin >db.creat...

    拓荒者
  • 用户登录安全框架shiro—用户的认证和授权(一)

    ssm整合shiro框架,对用户的登录操作进行认证和授权,目的很纯粹就是为了增加系统的安全线,至少不要输在门槛上嘛。   这几天在公司独立开发一个供公司内部人...

    赵小忠
  • 如何在 Discourse 中配置使用 GitHub 登录和创建用户

    本文章用于指导你如何在 Discourse 中配置使用 GitHub 的用户名进行登录。

    HoneyMoose
  • (interview)仅有输入用户名和密码和一个登录按钮,如何测试登录界面?

    3、用户名和密码的验证,应该是用服务器验证,而不单单是在客户端用javascript验证

    用户6367961
  • 如何查看域用户登录的计算机

    在内网渗透的过程中,经常会遇到需要查看域用户登陆了哪些机器,目前我们收集整理了三种方法,给大家分享出来。

    Ms08067安全实验室
  • 单点登录之如何平衡 Token 安全性和用户体验?

    在 《IDaaS 技术解析系列(一)》中,我们介绍了在单点登录中Token认证相对于传统基于Session认证的优势,本文继续介绍一组相关概念:Access T...

    玉符IDaaS

扫码关注腾讯云开发者

领取腾讯云代金券