你是如何看待前后端分离的?

ly69 ly69     2023-02-22     794

关键词:

首先看看前后端分离是什么?

  “前端”通常指的是,相对来说更接近用户的一端,例如:APP,网页、桌面程序等,在现实开发中大部分情况可以理解为“客户端”;

  “后端”相对来说就更泛化了,可以理解为是为前端提供服务的一端。

  ”分离“顾名思义就是将”前端“和”后端进行分开“,但是这里的分开主要从下面几个纬度进行分离

    1:架构分离,前端不需要依赖后端架构同时后端也不需要知道前端使用何种架构

    2:人员分离,前端后端使用的技术相互之间根部不需要相互了解完全可以在做到透明(当然相互了解会更好)

    3:工作分离,基于项目或者产品的单个功能的横向进行工作分离,任务划分更细

    4:关注点分离,前端偏向用户,后端偏向系统本身

下面分别是一体式web架构示意图和前后分离式web架构。

技术分享图片

一体式 Web 架构示意

技术分享图片

前后分离式 Web 架构示意

为什么要做前后端分离,它到底有什么好处?
  前后端的分离也实现了前后端架构的分离,带来的好处有:

    整个项目的开发权重往前移,实现真正的前后端解藕,动态资源和静态资源分离,提高了性能和扩展性。

    前端静态化

      前端有且仅有静态内容,再明确些,只有HTML/CSS/JS。
      其内容来自于完全静态的资源而不需要任何后台技术进行动态化组装。
      前端内容的运行环境和引擎完全基于浏览器本身。
    后端数据化

      后端可以用任何语言,技术和平台实现。
      遵循一个原则:只提供数据,不提供任何和界面表现有关的内容。
      统一API接口,接口完全可以共用。
      提供的数据可以用于任何其他客户端(如IOS,安卓,PC,微信小程序等)。
      通过一些代码重构,就可以大量复用接口,提升效率。
    平台无关化

      前端3大技术(HTML/CSS/JS)本身就是平台无关的。
      后台连接部分的本质是实现合适的RESTful接口和交互Json数据,就这2者而言,任何技术和平台都可以实现。
      前后端交给不同的人来编写,明确划分职责,发现bug的时候可以快速定位。
      vue.js等框架编写前端时,会比之前写jquery更简单快捷。
    架构分离化

      前端架构完全基于HTML/CSS的发展和JS框架的演变,由于前台是纯静态内容,大型构架方面可以考虑向CDN方向发展.
      后端构架几乎可以基于任何语言和平台的任何解决方案,大型构架方面, RESTful Api可以考虑负载均衡;而数据,业务实现等可以考虑数据库优化和分布式。
      在大并发情况下,可以同时水平扩展前后端服务器。
      即使后端服务暂时超时或者宕机了,前端页面也会正常访问,只不过数据刷不出来而已,当然现在一般是服务器集群,少有出现这种现象。
    前后端流量大幅减少

      减少后端服务器的并发压力,除了接口以外的其他所有http请求全部转移到前端服务器上。
      页面不再是全局刷新,而是异步加载,局部刷新,减轻压力。
    表现性能的提高

      页面性能,第一次获取的确会有些损失。
      后续使用这个页面,性能优势就完全体现了,页面的绝大部分内容都是本地缓存直接加载,远程获取的仅仅是1-2个10K的内容,其加载时间百毫秒内,这和本地页面几无区别,其前端加载和响应速度得到非常大的提高。
    安全性方面的集中优化

      前端静态化以后,一些注入式攻击在分离模式下被很好的规避。
      而后端安全问题集中化了,主要考虑处理RESEful接口的安全。
      安全架设和集中优化变得更明确和便利。

 
























前后端分离与不分离

...数据,是由服务器端生成的。这叫做服务器端渲染。至于你是用NodeJS,还是用PHP,还是Python,还是Java,还是NodeJS+Java,都不重要。这是我一直都觉得,很多概念在混淆的原因,很多人都觉得说到前后端分离,就是JS和Java的分离,... 查看详情

asp.net怎么实现前后端分离asp.net如何实现前后端分离

参考技术A1、前后端分离,那后端就不应该修改前端项目文件,并且前后端交互都应通过ajax执行。所以,后端只需要提供api,前端在html调用api即可。2、要提供api的话,aspx也可以做,但因为page的中间件会造成性能的浪费,可以... 查看详情

什么是前后端,有没有前后端分离,还有如何区分mvc与前后端分离

参考技术A1>>前后端分离的意思是,前后端只通过JSON来交流...同意其他几位,JSON只是一种可选的协议,而不是唯一,也未必是前后端通信的最佳方案。2>>组件化、工程化不需要依赖后端去实现...有哪些好处或弊端?前端... 查看详情

前后端分离的方法

网站前后端分离的方法  如何进行前后端分离:http://blog.csdn.net/github_26672553/article/details/51864112 https://segmentfault.com/q/1010000004494530解释了前后端的分离方法http://www.csdn.net/article/2015-10-25/2826033& 查看详情

什么是前后端分离?为什么分离

...使用vue,react,anglar这类的框架的情况下,前后端分离应该如何做?需求是这样:前端写html页面(非单页面应用),index首页about关于我们newslist新闻列表newsdetail新闻详情productlist产品列表productdetail产品详情后台只提供json数据那么1... 查看详情

如何进行前后端分离

...使用vue,react,anglar这类的框架的情况下,前后端分离应该如何做?需求是这样:前端写html页面(非单页面应用),index.html首页about.html关于我们newslist.html新闻列表newsdetail.html新闻详情productlist.html产品列表productdetail.html产品详情后... 查看详情

前后端要不要分离以及如何做

前后端分离要不要搞?这个我觉得按照康威定律办就好了,前后端如果是两拨人,不要多想一定要分离,如果是一拨人,确定前后端是否要分离需要算账,收益是它会强制我们按照服务的理念指导系统设计,将来的微服务也就顺理成章,代... 查看详情

前后端分离与前后端不分离

...的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但是无论那种前端,所需的数据基本相同,后端仅需要开发一套逻辑对外提供数据即... 查看详情

前后端分离与不分离

...的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。... 查看详情

前后端分离及不分离

...的效果,至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,APP有APP的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可,... 查看详情

前后端分离与前后端不分离的区别

...的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。... 查看详情

如何在开发时部署和运行前后端分离的javawe

...用。但是,不同与传统的web项目,这类前后端分离的项目如何在开发中部署和运行呢?当前后端分离时,后端项目一定会被加载到tomcat的webapp目录下面,但是前端的资源院该如何被访问到呢?这里以tomcat这个中间件为例,探讨在... 查看详情

前后端分离的项目,如何解决登陆问题

方案一:使用token  1、前端把account和password,提交到服务端的登陆api  2、服务端验证正确后,生成一个token,并把token和userId,存在缓存里(推荐使用redis数据库),然后把token返回给前端。  3、前端每次的请求头中带有to... 查看详情

前后端分离与不分离

...的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。... 查看详情

前后端分离实践

前后端分离并不是什么新鲜事,到处都是前后端分离的实践。然而一些历史项目在从一体化Web设计转向前后端分离的架构时,仍然不可避免的会遇到各种各样的问题。由于层出不穷的问题,甚至会有团队质疑,一体化好好的,为... 查看详情

前后端分离

...的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。... 查看详情

node项目如何前后端分离提供接口给前端

node接口编写,vue-cli代理接口方法    通常前端使用的MocK数据的方法,去模拟假的数据,但是如果有nodeMongodb去写数据的话就不需要在去mock数据了,具体的方法如下。首先启动mongodb、node、以及前端项目。这里用加载商... 查看详情

前后端分离

一、什么是前后端分离?最开始租内讨论的过程中我们发现。每个人对前后端分离的理解不一样。为了保证能在同一个频道讨论,先就什么是"前后端分离"达成一致大家一致认同的前后端分离的例子就是SPA,所有用到的展现的数据... 查看详情