在前端或者后端的学习过程中,我们一定或多或少听说过前后端分离开发,但是相信不少人对于前后端分离这个概念仍然不是很清楚,因此本文就对什么是前后端分离开发做一个介绍。

一、什么是前端和后端

在理解前后端分离的概念之前,我们首先要明白什么是前端和后端。

前端指的是用户可见的界面,网站前端页面也就是网页的页面开发,比如网页上的特效、布局、图片、视频,音频等内容。前端的工作内容就是将美工设计的效果图的设计成浏览器可以运行的网页,并配合后端做网页的数据显示和交互等可视方面的工作内容。前端开发用到的技术包括但不限于html5、css3、javascript、jquery、Bootstrap、Node.js 、React、Vue等技术。

后端是指用户没办法直接接触到的部分,后端通常是负责服务器各种业务逻辑的实现,和前端的业务进行交互,同时还要考虑平台的稳定性与性能等。后端开发以java为例,主要用到的技术包括但不限于 spring、 springmvc 、mybatis、 springboot 、servlet 、Tomcat服务器等。

二、什么是前后端不分离

在开发中有两种常见的架构,分别是B/S和C/S架构,C/S架构就是Client Server,是指在桌面程序上有一个客户端,然后连接远程的这个服务器端来传输数据。而B/S架构指的是用通过浏览器进行访问,不需要装一个客户端,B/S架构相比C/S架构来说不需要安装,更加简便快捷,打开浏览器即用。当时的业务逻辑主要如下图所示(图片来自知乎 令狐义卓的文章):

通常来说开发一个web应用程序,主要是用asp、php、jsp这样的语言来编写,一个项目通常是由多个这种文件构成的,每个文件中同时包含了HTML,CSS,JS的代码,系统整体负责处理业务逻辑,控制业面跳转和向用户展示业面等。采用这种的架构来开发具有简单便捷的好处,但是这么做也有一个明显的弊端,就是当这个页面逻辑比较复杂的话,那么这个页面的代码会变得非常复杂。

因此在前后端不分离的web开发中,前端设计师主要只负责将UI设计师设计出来的原型图把它编写成静态的HTML业面,而比如说页面的交互逻辑,后台的数据交互,这些工作都要由后端开发人员来实现,甚至是后端的开发人员还要顾前端的工作,一边实现页面的交互一边要渲染页面,两边相互切换着做。这导致了后台程序员开发的工作压力特别大,容易导致开发效率比较缓慢,而且代码维护起来非常麻烦。

三、什么是前后端分离

为了解决前后端分工不均的这个问题,在现在主流的开发中,我们提倡采用前后端分离这种架构,前后端分离开发的架构示意图如下图所示(图片来自知乎 令狐义卓的文章)。前后端分离后可以将更多的页面交互的逻辑分配给前端来处理,而后端可以专注于本职的工作,比如说API接口,或者是进行权限控制,或者是进行运算这些都交给后端。那么前端就可以独立完成与用户交互的这样一个过程,在前后端分离的这种架构中,后端主要负责返回前端所需要的数据这样的一个过程,而不需要渲染HTML页面和控制前端。

采用前后端分离的架构,在开发中同时解放了前端和后端,前端不需要再向后台提供模板,后端也无需在前端HTML中嵌入后端的代码,两者可以同时开工,专注于完成自己的那部分工作,不需要相互依赖,使得开发效率大大的提高。

理解:什么是前后端分离开发相关推荐

  1. 前后端分离开发模式下后端质量的保证 —— 单元测试

    概述 在今天, 前后端分离已经是首选的一个开发模式.这对于后端团队来说其实是一个好消息,减轻任务并且更专注.在测试方面,就更加依赖于单元测试对于API以及后端业务逻辑的较验.当然单元测试并非在前后端分 ...

  2. 【转】Vue.js入门教程(一)从静态页面到前后端分离开发

    第一章:基础知识 我能看懂吗? 只要你现在能用html+css+js制作一个静态页面,相信我,你100%可以读懂这篇文章. 本文尤其适合那些想要了解前后端分离开发技术,或者刚刚脱离传统MVC开发模式的 ...

  3. ultraedit 运行的是试用模式_单元测试 —— 前后端分离开发模式下后端质量的保证...

    概述 在今天, 前后端分离已经是首选的一个开发模式.这对于后端团队来说其实是一个好消息,减轻任务并且更专注.在测试方面,就更加依赖于单元测试对于API以及后端业务逻辑的较验.当然单元测试并非在前后端分 ...

  4. 《Vue+Spring Boot前后端分离开发实战》专著累计发行上万册

                杰哥的学术专著<Vue+Spring Boot前后端分离开发实战>由清华大学出版社于2021年3月首次出版发行,虽受疫情影响但热度不减,受到业界读者的热捧,截至今日 ...

  5. SpringBoot + Vue前后端分离开发:全局异常处理及统一结果封装

    SpringBoot + Vue前后端分离开发:全局异常处理及统一结果封装 文章目录 SpringBoot + Vue前后端分离开发:全局异常处理及统一结果封装 前后端分离开发中的异常处理 统一结果封 ...

  6. springboot flask php,使用Vue,Spring Boot,Flask,Django 完成Vue前后端分离开发(二)

    使用Vue完成前后端分离开发(二) Bravery never goes out of fashion. 勇敢永远不过时. 前面简单说了一下 Vue 项目的搭建和项目的大致页面,这里讲一下 Djang ...

  7. 笔记合并_.NET Core开发实战(第23课:静态文件中间件:前后端分离开发合并部署骚操作)学习笔记(上)...

    23 | 静态文件中间件:前后端分离开发合并部署骚操作 我们先来看一下静态文件中间件有哪些能力 1.支持指定相对路径 2.支持目录的浏览 3.支持设置默认文档 4.支持多目录映射 源码链接: http ...

  8. 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)

    利用Nginx轻松实现浏览器中Ajax的跨域请求(前后端分离开发调试必备神技) 前言 为什么会出现跨域? 造成跨域问题的原因是因为浏览器受到同源策略的限制,也就是说js只能访问和操作自己域下的资源,不 ...

  9. .NET Core开发实战(第23课:静态文件中间件:前后端分离开发合并部署骚操作)--学习笔记(下)...

    23 | 静态文件中间件:前后端分离开发合并部署骚操作 这里还有一个比较特殊的用法 一般情况下,我们前后端分离的架构,前端会编译成一个 index.html 文件和若干个 CSS 文件和 JavaSc ...

最新文章

  1. jquery 取消 radio checked 属性,重新选中的问题解决
  2. MPB:EGFP荧光标记大肠杆菌的构建
  3. vue input文本框中文字整体添加整体删除_揭秘神奇的PPT文本框,高手都喜欢这样的招数...
  4. PHP保存Base64图片的问题
  5. 忘掉Java并发,先听完这个故事...
  6. 破坏ice的服务器消息,我的世界:ICE服务器炸,矛头指向Mn,但真相另有隐情!...
  7. 包含内部类的.java文件编译后生成几个.class文件
  8. android底层重构,【理论】【转】Android项目重构之路:实现篇
  9. (33)System Verilog模块与包定义同名类冲突
  10. ise 时钟约束_ISE时序约束笔记2——Global Timing Constraints
  11. list each详解
  12. P3800 Power收集
  13. Kickstarter 开源其 Android 和 iOS 应用
  14. delphi xe 服务器发消息,Delphi XE IdTCPClient和IdTCPServer 发送和接收文件
  15. object、param标签及页面显示PDF文件的方法
  16. mysql user.myd_“./mysql/user.MYD”未找到(ERRCODE:13 - 拒绝权限)
  17. 常用单片机和开发板的引脚功能图
  18. 地平线4显示与服务器通讯发生错误,地平线4加载失败发生不明错误的解决方法 - 系统家园...
  19. Android RemoteViews----RemoteViews应用
  20. 分布式事务--TX-LCN(介绍)

热门文章

  1. 运算放大器和比较器的区别
  2. hihocoder 1279(状压)
  3. 四分钟内明白 ARCore + 上手
  4. 如何做保证测试工作有价值和意义
  5. 使用intel加速器加速android模拟器
  6. xp系统qq安装不上网络连接服务器,电脑xp系统连不上无线网教程
  7. Django项目-商品详情页
  8. 程序员如何发展第二职业?这几种副业方式超赚钱
  9. 【工具使用系列】矢量图形语言Asymptote
  10. 年度审计报告是什么意思?年度报表审计的基本流程