前后端分离的优势

1、可以实现真正的前后端解耦,前端服务器使用Nginx。前端/web服务器放的是css,js,图片等等一系列静态资源(甚至你还可以css,js,图片等资源放在特定的文件服务器,例如阿里云的oss,病使用cdn加速),前端服务器负责控制页面引用&跳转&路由,前端页面异步调用后端的接口,后端/应用服务器使用Tomcat(把tomacat想象成一个数据提供者),加快整体相应速度。(这里需要使用一些前端工程化的框架比如nodejs,react,router,react, redux,webpack)

2、发现bug,可以快速定位是谁的问题,不会出现相互踢皮球的现象。页面逻辑,跳转错误,浏览器兼容性问题,脚本错误,页面样式等问题,全部由前端工程师来负责。接口数据出错,数据没有提交成功,应答超时等问题,全部由后端工程师来解决。双方互不干扰。

3、在大并发情况下,我二姨同时水平拓展前后端服务器,比如淘宝的一个首页就需要2000+台前端服务器做集群来扛住日均多少亿+的日均PV。(阿里的技术峰会,听他们说web容器都是自己写的,就算他单实例抗10万http并发,2000台是2亿http并发,并且他们还可以根据预知洪峰来无线拓展,很恐怖,就一个首页)。

4、减少后端服务器的并发/负载压力。除了接口以外的其他所有http请求全部转移到前端Nginx上,接口的请求调用Tomcat,参考Nginx反向代理Tomcat,且除了第一次页面请求外,浏览器会大量调用本地缓存。

5、即使后端服务暂时超时或者宏机,前端页面也会正常访问,只不过数据刷不出来而已

6、也许你也需要有微信相关的轻应用,那样你的借口完全可以共用,如果也有APP相关的服务,那么只要通过一些代码重构,也可以大量复用接口,提升效率。(多端应用)

7、页面显示的东西再多也不怕,因为是异步加载。

8、Nginx支持页面热部署,不用重启服务器,前端升级更无缝。

9、增加代码的维护性&易读性(前后端耦在一起的代码读起来相当费劲)

10、提升开发效率,因为可以前后端并行开发,而不是像以前的强依赖

11、在Nginx中部署证书,外网使用https访问,并且只开放443和80端口,其他端口一律关闭(防止黑客端口扫描),内网使用http,性能和安全都有保障

12、前端大量的组件代码得以复用,组件化,提升开发效率,抽出来!

 

转发:https://www.jianshu.com/p/1fe4d27ebcf1

posted on 2019-07-09 11:27  逗芽  阅读(401)  评论(0编辑  收藏  举报

导航