前后端分离

时间:2022-03-27 16:29:37

开发模式

在Web开发模式中,有两种开发模式

  • 前后端不分离

前后端分离

  • 前后端分离

前后端分离

前后端分离优势

在前后端不分离模式中,前端页面看到的效果都是由后端控制,由后端渲染页面或重定向,也就是后端需要控制前端的展示,前端与后端的耦合度很高。

这种应用模式比较适合纯网页应用,但是当后端对接App时,App可能并不需要后端返回一个HTML网页,而仅仅是数据本身,所以后端原本返回网页的接口不再适用于前端App应用,为了对接App后端还需再开发一套接口。

在前后端分离的应用模式中,后端仅返回前端所需的数据,不再渲染HTML页面,不再控制前端的效果。至于前端用户看到什么效果,从后端请求的数据如何加载到前端中,都由前端自己决定,网页有网页的处理方式,App有App的处理方式,但无论哪种前端,所需的数据基本相同,后端仅需开发一套逻辑对外提供数据即可。

在前后端分离的应用模式中 ,前端与后端的耦合度相对较低。

在前后端分离的应用模式中,我们通常将后端开发的每个视图都称为一个接口,或者API,前端通过访问接口来对数据进行增删改查。

为什么要有前后端分离

  • 多端适应
  • 前后端开发职责不清
    • 模板到低是前端写还是后端写?如果前端写,前端就要懂后端模板语言
    • 如果后端写,那么后端就要懂前段html,css,js甚至更多更多
  • 开发效率问题,前后端相互等待
    • 前端在写的时候,就希望后端全部写好自己再写
    • 后端在写的时候,就希望前端全部写好自己再写
  • 前端一直配合着后端,能力受限(搞来搞去写静态页面,天天给后台写模板)
  • 后台开发语言和模板高度耦合,导致开发语言依赖(一旦用python开发,以后要换成java或者其他语言)

前后端分离缺点

  • 前后端学习门槛增加(比如后台很多模板语法控制前端展示,但是分离以后,需要前端自己去实现,增加前端成本,对后台来说,后端要满足规范)

  • 数据依赖导致文档重要性增加

    • 文档是否详细
    • 是否及时更新
    • 修改要及时通知其他端
  • 前端工作量加大

  • SEO的难度增加(都是AJAX,像一些初级爬虫全部挡在外面,比如一些搜索引擎,这样你的排名就不靠前了)