网站架构方面采用nobackend这种方案

  

  现在的应用开发模式过度重视后端的搭建,而实际上我们早已为简化后端开发做了很多年的工作,因此兄弟连创始人李超针对现在更注重UX的环境,提出一个不同的解决方案——noBackend,优先PHP培训前端开发。

  就是说 web,ios,android只是个展示层,持久化操作统一丢给api。

  先不考虑 模板渲染这一块,我们可能会把这块放到前端。

  目前纠结就是 web的session 和 app的token 问题。

  这套api不单单通过token来校验,而是当web请求是他是会有用户session的。

  当含有用户session的时候就不用校验token。

  这种做法有什么局限性或者缺点吗?

  后端php..

  回复内容:

  当然可行,而且我还有很多成功案例,业内的案例应该也不少,尽管有些是忽悠人的,有些只是看起来是那么回事儿,实际却不是。

  但是话说回来,这事儿还是看你们有没有资深架构师,要真的有很多钱的话,我不介意用.NET给你们证明这个架构的可行性的。(PHP无爱抱歉)

  如果你真的纠结token和session这种问题,要么是因为你们没有能力搞定这个架构,要么是你没玩过心里没底,我不太知道是哪一种,总之是否可行的答案是肯定的。
我理解你说的nobackend是指不想采取PHP、JSP之类技术的传统架构,那类架构在session里会放一堆用户业务的状态,并在服务器端写逻辑来更新页面或者操作后端服务(如,更新数据库)。

  就我个人经验而言,你完全可以把页面更新和用户当前状态放在前端,后端API是一组无状态的服务,这其实是很常见的架构了。

  比较麻烦的(从你的问题描述里也可以看出)是安全那块。

  native的client,你可以考虑oauth implicit grant
type那种,即token直接放客户端,因为native APP被认为比较安全。

  web的话,token直接放客户端比较危险,但传统方法(包括oauth authorization code
grant type)是要在session里放token的。

  这个问题,其实也有办法解决。但你最好先问一下自己,真的要无session化吗?其实session一般而言是很难完全去掉的,就整个系统架构而言,你只不过是在你的编程视野内不用它而已。合理的使用,并无不可,不要搞原教旨主义。如果只有token放session里面,万一服务器崩溃,假设你应用处理得好,前端业务状态态能被持久化,那无非就是让用户重新登录然后回到刚才页面继续。比如,在线商城,用户只要把东西放购物车里,后台崩掉,也无非就是重登录,你的购物记录还在,可以继续操作。这只是粗略描述,具体细节要根据业务需求来定,但我的意思你应该能明白了吧。
你可以读读这个Post: Lift, State, and Scaling,
无关语言。可以想到的是,你们可能需要自己造很多轮子,因为很多事务在前端做的话没有成熟的工具,最后反倒拖慢了你们的创业www.itxdl.cn。 简单来说,

  1. 后端提供rest
api,提供一个/verify供登录验证,然后后续操作都需要附带验证信息

  2. 前端通过ember/angular做成webapp,使用ajax消费rest
api,我在实际中就不用cookie,每次登录就是了,因为你已经是webapp了

  3. 如果需要安全就上https,cookie这玩意我个人觉得能免则免 直接使用js
api,授权问题很难解决,secret不能下载到浏览器,只能使用隐式授权,但大多数服务都不支持。。。
无后端方案?这个有过。记忆中有挺多的案例的。

  无后端不是真的没有后端,API实现不也是后端之类的技术嘛。发展到现在应该已经基本没难点了。
题主的问题,可能是没有认识到服务端token和web
session的区别。其实还好,和接口服务器通信肯定是token,web端的session肯定是先验证了服务端访问权限由web端生成的。

  我们来过一下流程,

  用户登录为例,

  1. 用户登录,向api服务器发送验证信息

  2. 服务器验证OK,返回一个token表示验证通过

  3. web端创建一个登录session记录下当前登录态获取的token

  4. 登录完成,跳转到应用页面

  在上面之后,用户要看看ta的优惠券信息

  1. 拿着登录时web端session里保存的token
和用户名等信息,调用优惠券接口

  2. 返回优惠券信息

  服务器在这个过程中做了2件事

  1. 验证token合法性(存在性,过期与否,来源等)

  2. 合法,调用服务返回优惠券信息,反之,报错。

  在这里,你可以看到session是web端表现层用的,token是接口服务器的session,分清楚层次,就明朗了。

  注:在www.itxdl.cn网站上,罗列了一系列后端解决方案,能够帮助你开始应用noBackend模式开发。

时间: 2024-10-08 21:44:06

网站架构方面采用nobackend这种方案的相关文章

大型网站技术架构(二):大型网站架构模式

每一个模式描述了一个在我们周围不断重复发生的问题及该问题解决方案的核心.这样,你就能一次又一次地使用该方案而不必做重复工作. 网站架构模式 分层 分层是企业应用系统中最常见的一种架构模式,将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统. 在大型网站架构中采用分层结构,将网站软件分为应用层.服务层.数据层. 应用层负责具体业务和视图展示,如网站首页及搜索输入和结果展示等. 服务层为应用层提供服务支持,如用户管理服务.购物车服

LAMP网站架构方案解剖

LAMP网站架构方案解剖 2011-03-18 10:46 月光 网络转载 字号:T | T 网站架构是比较考研技术的一件事,所以要对一种好用的工具,那么网站架构就会事半功倍,LAMP具有通用.跨平台.高性能.低价格的优势,因此LAMP无论是性能.质量还是价格都是企业搭建网站的首选平台. AD:2014WOT全球软件技术峰会北京站 课程视频发布 LAMP 用LAMP进行网站架构是非常容易的. 对于大流量.大并发量的网站系统架构来说,除了硬件上使用高性能的服务器.负载均衡.CDN等之外,在软件架构

网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析

网站设计阶段是网站开发过程中非常重要的阶段之一,我们只有在设计阶段拥有优秀的设计思路与方法,才能使我们设计出来的网站更加的高效.稳定.本文我们介绍了网站设计过程中需要注意的一些事项,接下来我们就来一起了解一下这一过程. 1.HTML静态化 其实大家都知道,效率最高.消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实 也是最有效的方法.但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS

网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析

网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析 文章分类:综合技术 1.HTML静态化其实大家都知道,效率最高.消耗最小的就是纯静态化的html页面,所以我们尽可能使我们的网站上的页面采用静态页面来实现,这个最简单的方法其实也是最有效的方法.但是对于大量内容并且频繁更新的网站,我们无法全部手动去挨个实现,于是出现了我们常见的信息发布系统CMS,像我们常访问的各个门户站点的新闻频道,甚至他们的其他频道,都是通过信息发布系统来管理和实现的,信息发布系统可以实现最简单的信息录入自动生成静态

高性能网站架构方案

高性能网站架构方案,本文谈了七点网站架构方案,用以优化网站响应时间,实现大型网站技术架构方案.无论是电子商务或者其他网站且可使用. 一.优化网站响应时间的架构方案: 网站能不能留的住用户,一方面是看内容,另一方面是看响应时间.通常有以下几个方式来降低网站响应时间: 1.减少HTTP请求.包括合并css和javascript.减少图片数量,比如利用css的偏移技术来在一个图片中选择不同的位置内容.利用浏览器的Cache功能,我们可以在头中声明是否被浏览器缓存. 2.动态内容静态化.比如永久生成HT

中国最大的25个网站采用技术选型方案

中国最大的25个网站采用技术选型方案 网站排名数据来自 alexa,其中几个站长站被排除了,因为站长类网站的alexa 数据有数量级的偏差 排名 网站 开发语言 1 baidu php 2 qq.com java 3 taobao java 4 sina php 5 google java/c++ 6 163 java 7 weibo.com php 8 soso.com java 9 sohu.com java 10 hao123.com php 11 tmall.com java 12 if

细说五层网站架构

目前网站架构一般分为网页缓存层.负载均衡层.Web层和数据库层.文件服务器层.我们可以依次用这五层对网站架构进行讨论,为了增强说服力,我将用如下三个并发较大的生产环境来说明. q   电子商务网站(并发最大峰值2900,日PV500万左右) q   电子广告网站(并发最大峰值1500,日PV150万左右) q   大型CDN门户广告网站(并发最大峰值5000,日PV5000万左右) 1.网页缓存层 首先说网页缓存层,比如CDN租凭,其效果比公司自己部署Squid/Varnish要好,它们专业.价

大型网站架构不得不考虑的10个问题

大型网站架构不得不考虑的10个问题 这里的大型网站架构只包括高互动性高交互性的数据型大型网站,基于大家众所周知的原因,我们就不谈新闻类和一些依靠HTML静态化就可以实现的架构了,我们以高负载高数据交换高数据流动性的网站为例,比如海内,开心网等类似的web2.0系列架构.我们这里不讨论是PHP还是JSP或者.NET环境,我们从架构的方面去看问题,实现语言方面并不是问题,语言的优势在于实现而不是好坏,不论你选择任何语言,架构都是必须要面对的. 这里讨论一下大型网站需要注意和考虑的问题 1.海量数据的

(转)web网站架构演变

浅谈web网站架构演变过程 前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变. 该系统具备的功能: 用户模块:用户注册和管理 商品模块:商品展示和管理 交易模块:创建交易和管理 阶段一.单机构建网站 网站的初期,我们经常会在单机上跑我们所有的程序和软件.此时我们使用一个容器,如tomcat.jetty.jboos,然后直接使用JSP/servlet技术,或者使用一些开源的框架如maven+spring+struct+hibernate.maven+spri