前后端分离的好处
前后端的分离也实现了前后端架构的分离,带来的好处有:
*整个项目的开发权重往前移,实现真正的前后端解耦,动态资源和静态资源分离,提高了性能和扩展性
*前端静态化
*前端有且仅有静态内容,再明确些,只有HTML/CSS/JS
*其内容来自于完全静态的资源而不需要任何后台技术进行动态化组装。
*前端内容的运行环境和引擎完全基于浏览器本身。
*后端数据化
*后端可以用任何语言,技术和平台实现。
*遵循一个原则:只提供数据,不提供任何和界面表现有关的内容。
*统一API接口,接口完全可以共用。
*提供的数据可以用于任何其他客户端(如IOS,安卓,pc,微信小程序等)
*通过一些代码重构,就可以大量复用接口,提升效率
*平台无关化
*前端三大技术(HTML/CSS/JS)本身就是平台无关的。
*后台链接部分的本质是实现合适的RESTful接口和交互JSON数据,就这两者而言,任何技术和平台都可以实现。
*前后端交给不同的人来编写,明确划分职责,发现bug的时候可以快速定位。
*vue.js等框架编写前端的时候,会比之前写Jquery更简单快捷。
*架构分离化
*前端架构完全基于HTML/CSS/JS的发展和js框架的演变,由于前台是纯静态内容,大型架构方面可以考虑向CDN方向发展。
*后端架构几乎可以基于任何语言和平台的任何解决方案,大型架构方面,RESTful Api可以考虑负载均衡,而数据,业务实现等可以考虑数据库优化和分布式。
*在大并发情况下,可以同时水平扩展前后端服务器。
*即使后端服务器暂时超时或者宕机,前端页面也会正常访问,只是数据刷新不出来而已,当然现在一般是服务器集群,少有出现这种现象。
*前后端流量大幅减少
*减少后端服务器的兵法压力,除了接口以外的其他所有http请求全部转移到前端服务器上
*页面不再是全部刷新,而是异步加载,局部刷新,减轻压力。
*表现性能的提高
*页面性能,第一次获取的确会有所损失
*后续使用这个页面,性能优势就完全体现了,页面的绝大部分内容都是本地缓存直接加载,远程获取的仅仅是1-2个10k的内容,其加载时间百毫秒内,这和本地页面几无区别,其前端加载和相应速度得到非常大的提高。
*安全性方面的集中优化
*前端静态以后,一些注入式攻击在分离模式下被很好的规避。
*而后端安全问题集中化了,主要考虑处理RESTful接口安全
*安全架设和集中优化变得更明确和便利
实现的一些表现
*前后端人员双方约定好接口的数格式
*比如:前端需要调用一个用户信息的接口,数据格式为{name:'tielemao'}.name,后端人员只需要告诉他一个接口url(如http://www.tielemao.com/api/userInfo),并且将这个接口返回前端想要的数据即可,至于后端人员怎么实现这个接口,前端人员并不关心!
*前端页面用ajax解析URL,获取数据进行页面端的处理,然后再按照上述地址返回给后端。
*前端人员要用这个接口来做什么,后端人员同样不需要关心,双方都只专注于自己需要实现的业务逻辑。
RESTful风格的API
RESTful风格的API是前后端分离的最佳实践
*RESTful推荐每个url能操作具体的资源
*能准确描述服务器对资源的处理动作。
*通常服务器对资源支持get/post/put/delete等,用来实现资源的增删改查。
*前后端分离的话,这些api-url是对接的桥梁,采用restful接口地址,含义更清晰,见名知意。
参考:
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
10月15日云栖精选夜读 | 阿里巴巴 Apache Dubbo 布道师谈 Service Mesh
“Service Mesh要解决分布式架构下如何集成的问题,同时它又是云原生的核心,Dubbo Mesh正在做这方面的实践。--- 阿里巴巴Apache Dubbo布道师 吕仁琦 ”本文整理自2018杭州云栖大会首届开发者生态峰会吕仁琦的分享。 热点热议 阿里巴巴 Apache Dubbo 布道师谈 Service Mesh 作者:技术小能手 发表在:云时代架构 一个6年iOS程序员的工作感悟,送给还在迷茫的你 作者:技术小能手发表在:Android开发中文站 JavaScript数组去重(12种方法,史上最全) 作者:技术小能手发表在:编程微刊 知识整理 Python3.7 contextvars 初探 作者:技术小能手发表在:Python中文社区 Spring Cloud 2.x系列之springboot集成ActiveMQ 作者:技术小能手发表在:Java乐园 漫画:什么是桶排序? 作者:技术小能手发表在:程序员小灰 限流降级神器:哨兵(sentinel)原理分析 作者:技术小能手发表在:程序员DD 10 行代码实现杂乱文件自动分类 作者:技术小能手发表在:小詹学Python 美...
- 下一篇
多个koa中间件执行顺序
多个中间件执行顺序 多个中间件会形成一个栈结构(middle stack),以"先进后出"(first-in-last-out)的顺序执行。 最外层的中间件首先执行。 调用next函数,把执行权交给下一个中间件。 ... 最内层的中间件最后执行。 执行结束后,把执行权交回上一层的中间件。 ... 最外层的中间件收回执行权之后,执行next函数后面的代码。请看下面的例子 const Koa = require("koa"); const app = new Koa(); let arr; // 第一个中间件 app.use(async (ctx, next) => { arr = []; arr.push(1); await next(); arr.push(2); }); // 第二个中间件 app.use(async (ctx, next) => { arr.push(3); await next(); arr.push(4); }); // 第三个中间件 app.use(async (ctx, next) => { arr.push(5); await next(...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- 设置Eclipse缩进为4个空格,增强代码规范
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8