经常听到有人讨论前后端分离,那么大家对前后端分离的工作区分和理解的呢?
有人说,前后端分离,前端只需要专注于前端,对于后端是用什么开发的不用管,前端只需要后端 Api 接口就可以,但这个说法可以推广到所有的 Web 应用+客户端开发吗?
如果是 b/s 端的话,前后端分离的话,按前端只需管后端 api 的说法,好像有点矛盾啊,B/s 端的客户端,也就是浏览器上显示的网页,不都是从服务端上拿过来的吗?如果前后端分离,网页都是从服务器上拿过来的,那还叫什么前后端分离?
B/S 端的前后端分离并不能彻底做到把。用户通过浏览器打开 Web 应用,应用的第一个网页或者说登录入口网页是从哪来的? B/S 应用开发的话,前端肯定得接触到后端除了 api 接口之外的东西吧?比如后端模板引擎渲染的页面。
c/s 端的才能做到彻底的前后端分离把,比如 android,electron,wpf,其用户打开客户端所看到的的界面原本都在本地,这样的环境下,前端才能真正可以只管后端 Api 吧,不用必须从服务端拿网页。
1
Zhuzhuchenyan 2021-04-23 17:14:43 +08:00
个人愚见,
按照你对 C/S 端架构的理解,可以理解为每次在浏览器上打开网页都是一种动态加载客户端的行为。只不过客户端的载体( HTML,CSS,JS 之流)并不会持久化在浏览器端。 |
2
ch2 2021-04-23 17:19:13 +08:00
前后端分离主要是针对后端来说的,对前端来说本来区别就不大,不分离照样 react 各种框架跑无所谓的
api 服务器不再负责在用户端执行的代码的逻辑,专心搞只在服务器端执行的逻辑 不分离就是后端的代码里要混杂者前端的代码,后端要干前端的活 |
3
Michaelssss 2021-04-23 17:23:37 +08:00
前端指的是有交互逻辑的
后端指的是没有交互逻辑的 你从这个方向看,前后端分离就是为了把交互剥离,交互可以很复杂,比如说大型 3D 网游,不剥离就会特别难以处理 |
4
erquren 2021-04-23 17:25:31 +08:00
你说的浏览器上显示的网页,不都是从服务端上拿过来的吗?
我认为这个网页的 css,js 之类的是前端服务器给你发的,里面的数据是后端服务器给你发的,前端就负责 css,js 之类的开发、展示,后端负责对数据库进行操作把值通过 json 或者其他的方式返回给前端 |
5
zen1 2021-04-23 17:25:58 +08:00
个人理解:
前端也可以单独部署的 不是说前端就没有服务器了,而是其单独部署,只处理页面 后端是处理业务逻辑的,返回前端需要的数据 前端的服务器那叫后端吗?我认为不叫^^ |
6
hafuhafu 2021-04-23 17:29:43 +08:00
界面 /前端 在不在本地运行和前后端分离没啥联系...
你请求的页面的服务器和提供数据的后端 api 不是同一个。 |
7
xuanbg 2021-04-23 19:57:05 +08:00
前后端分离,在技术上就是字面意思,前端一个项目,后端一个项目。前端写前端,后端写后端。前端通过调用后端的 API 获取 /提交数据。
|
8
dorothyREN 2021-04-24 05:21:55 +08:00
@xuanbg #7 严格来讲,数据不是前端调用后端的 API 获取,而是用户请求后端的 API 获取吧
|
9
JerryCha 2021-04-24 12:45:54 +08:00
没用过 nginx 、IIS 、Apache2 么
|