Web 前后端为啥需要分离?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Web 前后端为啥需要分离?相关的知识,希望对你有一定的参考价值。
我理解的前端就是负责所有和用户交互有关的模块都可以视为前端,他就像餐馆里面的前台服务生直接和客户打交道的人。
后端就是负责处理用户的请求,进行数据的处理,用户几乎所有操作都可以抽象为对数据的增删改查,就像餐馆里面的厨师接收服务生告诉他要炒哪些菜,厨师把菜处理好再给服务生(后端处理数据返回给前端表现层)服务生最后输出给客户。
但是目前由于很多情况下业务比较简单,比如说一个内容发布系统 CMS ,用户交互,请求查看文章和管理员新增文章都是很简单的业务逻辑,所以前后端都用 php 这门主要用于表现层的语言来实现,而本身在用 MVC 模式把用户交互部分( V 和 C )以及数据处理(主要是 M ),否则的话就得用 java 等非脚本语言来实现保证效率,甚至高并发环境下还要用到消息队列,缓存等等。
参考技术A连接彼此的只有接口,提供接口的为后端,使用接口的为前端。 Node 的作用就是让 javascript 也能在服务器上跑了,让这门前端语言也能处理一些后端工作,仅此而已。把 Node 归到前端很让人不能接受
“路由”, “模板生成”,然而这并不是 Node 的什么新兴概念,返回给用户的页面无非是后端渲染完成直接返回 html ,或者后端返回一堆数据,然后浏览器选进行渲染
最开始的时候大多数 web 框架都是这样做的,后来人们觉得后端渲染比较浪费服务器资源,何不利用用户的浏览器呢,这样服务器的开销会降低很多,于是把渲染的工作交给了前端,后来逐渐发现这样做会在一定程度上影响用户体验,并且对 SEO 也不好,所以又有不少人开始重新拾起后端渲染。就像 react ,刚出来还是普遍前端渲染的,几个月后后端渲染的呼声越来越高。已然最佳事件
然而回到最开始我想说的,前后端分离的标准我认为就是根据接口划分的。为什么需要前后端分离,我觉得有这些好处, 1 ,方便重构,只要接口保持一致,前后端想怎么玩就怎么玩。 2 ,适合快速开发,接口定下后,前后端可以独立进行开发,最后对接即可。 3 ,方便找到问题,先看接口,二分法,出现问题直接定位是前端问题还是后端问题(方便甩锅)
最后,无论 Node 在后端做了什么他都属于后端,更何况“路由”,“模板渲染”这些已经是所有后端 web 开发框架标配的东西...
参考技术B关于前后端分离,我一直没有一个清楚的概念,自己心里有一些想法,但是非常不自信。
所以,我在下面说一下自己的理解,希望有经验的大哥帮忙指教一下。
第一类,通过 nodejs 作为一个中转站, nodejs 虽然运行在服务器上,但是它处理的是前端显示的业务,例如路由,所以它是前端的一部分,后端使用其他的语言来处理数据问题,然后与 nodejs 通信。 第二类,通过前端框架来实现显示逻辑,例如路由,读取 api 等,这些任务都是浏览器来完成的。然后后端用其他任何语言来提供前端所需要的 api
以上是关于Web 前后端为啥需要分离?的主要内容,如果未能解决你的问题,请参考以下文章