加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 实现Web服务登录的最佳方法是什么?

发布时间:2020-12-13 17:57:34 所属栏目:PHP教程 来源:网络整理
导读:我有一个php webservice,可以调用(从手机)来执行某些任务.要完成这些任务,调用者必须“登录”.处理身份验证的最佳方法是什么? 目前,我只是在使用SESSIONS.客户端调用登录API以及所需的任何其他API.但是我担心让20万人都打电话给这项服务并拥有所有这些会议
我有一个php webservice,可以调用(从手机)来执行某些任务.要完成这些任务,调用者必须“登录”.处理身份验证的最佳方法是什么?

目前,我只是在使用SESSIONS.客户端调用登录API以及所需的任何其他API.但是我担心让20万人都打电话给这项服务并拥有所有这些会议的影响.我不确定服务器将如何响应.有小费吗?这通常如何处理?像facebook,flickr等….

如果这是由自定义客户端程序(即您的手机)调用,而不是浏览器,为什么要“登录”.相反,只需使用HTTP身份验证(如果您要使用SSL或您自己的方案,则使用DIGEST或BASIC),并且每次都“登录”.

然后,您不必担心会话,负载平衡和故障转移等问题.保持无状态.

附加物:

当然,DB的点击次数越少越好,这只是一般规则.但与此同时,数据库的许多命中都是由数据库服务器上的缓存页面处理的,或者可能是应用程序缓存处理,因此它们永远不会访问数据库服务器.因此,在某些情况下,特别是针对索引列的单行查询,DB命中可能非常便宜.

现在,人们可能会考虑是否存储和访问它们,数据库的缓存位和唯一用户会话之间的区别是什么.

嗯,主要是,差异在于与数据的契约.缓存项目的生命周期与您拥有的内存量和发生的未缓存活动量成正比.给它少量的内存,缓存的项目可能有很短的寿命.给它留下很多记忆,缓存的项目有更好的机会.如果缓存数据的内存量足够大,以至于该数据的重复活动继续使用缓存,则缓存是一个巨大的胜利.如果您的缓存如此快速地回收,那么缓存中没有任何内容,您缓存几乎没有任何价值.但重点是系统可以使用或不使用缓存,缓存只是一种性能增强.

但是,会话具有不同的合同.许多会话具有特定的最短寿命,通常以分钟为单位测量:10,20,甚至30分钟.

这意味着,如果用户只点击一次您的网站,即使他从未回来,也必须将资源专用于该用户.你必须,否则会议提供实际上没有价值.

如果您获得了大量流量,则需要管理大量新会话.理论上,在恶劣的环境下,会议可以无限制地飙升.如果您的网站突然获得10,000次点击,您可以在会话的最短生命周期内管理这些点击的剩余部分.你必须为它们分配资源(内存或磁盘),你必须跟踪它们,然后,你不得不清理它们.

缓存是固定资源.它只会增长到你配置它的大小.您没有义务在缓存中保留任何内容,并且如前所述,系统将在有或没有缓存的情况下运行.高速缓存自然循环.如果你获得10,000次点击的激增,他们可能会推动你的缓存,但之后他们就不会在你的系统上留下任何痕迹.它们可以在1或2分钟内击中并消失,永远不会被再次看到.

最后,通过会话,您需要在基础架构之间共享它们,以便它们随着用户从一台机器跳到另一台机器(无论出于何种原因)而与用户一起旅行.缓存没有.理想情况下,您希望将用户本地保留在一组资源中,以便缓存可以完成其工作,但系统无论是移动还是停留都能正常工作(由于缓存重用,它只会保留更好).如果您不复制会话,则根本不起作用.

数据库命中加起来,它们可以很便宜,但它们永远不会自由.但是会话也有自己的成本,所以考虑它们以及它们在您的架构中的应用方式非常重要.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读