今天这篇文章来分析一下什么是前后端分离的相关知识,很多小伙伴不清楚到底什么是前端,什么是后端,什么是前后端分离。在说前后端分离之前,我们先要弄清楚这几个概念,大家可能经常听到前端,后端或者是大前端的一些概念,这些概念是怎么产生的呢?什么是前端,什么是后端,什么是前后端不分离?只有了解了这些,那么前后端分离你就懂了。

首先我讲一下什么是前端,在讲前端之前我先问大家一个问题,我们经常提到的JavaScript是前端吗?用JS写的程序是前端吗?还是说只有前端工程师写的程序才叫前端?我常提到HTML,CSS这是前端吗?或者是我们常用的一些APP,或者是一些小程序,这些是前端吗?那么大前端又是什么呢?这些问题抛出来以后,刚开始学习编程的同学估计都有想放弃学习编程的这种想法了。

没有关系,也没有你想的那么复杂。在通常的情况下,我们说的这个前端都是指浏览器这一端,而浏览器这一端通常是用JS来实现的,所以用JS写大部分的程序都是前端,包括APP,包括小程序和H5等。而当nodeJS出现以后,用nodeJS写的后台部分,也会被人归为前端,为了区分之前的前端,给他起了一个名字叫做大前端。但是呢我们想一下,用这种语言来区分前后端他真的合适吗?我其实是持有保留态度的。

对于前后端的定义,我认为他不应该是以语言来定义,而是应该以他的运行环境去定义,如果实在服务端器的话,应该被称为后端,因为什么呢?因为你既看不到也摸不着。而运行在客户端,就应该被称为前端,因为你能够看得到。

我们再看一下什么是前后端不分离,在移动互联出现之前,有一种流行的说法叫做B/S和C/S架构,C/S架构指的就是Client Server,意思就是说在桌面程序上有一个客户端,然后连接远程的这个服务器端,用socket或者是http来传输数据。而B/S架构是什么呢,就是指的是用通过浏览器进行访问,不需要装一个客户端,B/S架构曾经一度被认为是C/S的替代者,好处是什么呢?就是它不需要安装,简单方便。所以那个时候的写法就是后端是控制一切的,所以在早期的Web开发过程中,我们大家都听说过什么PHP程序员啊,Java程序员啊或者是asp程序员,大家要干的活就是“全栈”,也就是说前后端通吃。那么当时的技术是怎样的呢?看一下这张图:

通常开发一个web的这种应用程序,多是以asp,php或者jsp这样的语言来编写,项目通常是由多个这种文件构成的,每个文件当中同时包含了HTML,CSS,JS这样混编的,系统整体负责处理业务逻辑,控制业面跳转和向用户展示业面等。

而这个浏览器是什么呢?浏览器他是一个翻译官,他是翻译程序员写的代码给用户看的,翻译的过程其实有一个高大上的词,很多人把他称之为渲染。也就是说我们在平常看到的一些漂亮的这个网页就是浏览器渲染出来的。这个架构的好处是什么呢?就是简单便捷。但是这么做其实有一个明显的弊端,如果这个页面复杂一点的话,那这个单页的代码就比较恐怖了,少则上千,多则上万。

所以说在以前的开发过程中,前端设计师一般只扮演一个切图的工作,只是简单地将UI设计师设计出来的原型图把它编程静态的HTML业面,比如说业面的交互逻辑,比如说后台的数据交互,这些工作都是由后台开发人员来实现的,而且更有可能的是什么呢,是后端的开发人员直接兼顾前端的对口工作,一边实现API的接口一边要开发网页,两个相互切换着做。这导致了后台程序员开发的工作压力特别大,这样不仅开发效率比较缓慢,而且代码难以维护。而我们讲的前后端分离的话下面来看一下这张图片:

前后端分离除了解决分工不均的这个问题之外,主要是将更多的交互的这个逻辑分配给前端来处理,而后端可以专注于本职的工作,比如说API接口,或者是进行权限控制,或者是进行运算这些都交给后端。那么前端就可以独立完成与用户交互的这样一个过程,在前后端分离的这个应用模式当中,后端仅返回前端所需要的这样的一个过程,不需要渲染HTML业面和控制前端的这样一个效果。

至于说用户看到什么样的效果呢,从后端请求的数据展现都是后端通过异步接口,不如说通过AJA/JSON这种方式提供的,前端只管展现,但是呢你不要以为只是在敲代码的这个时候把前端和后端进行分开就是前后端分离了。它彻底是解放了前端,前端不需要在向后台提供模板,或者是后台无需再前端HTML中嵌入后台的代码,两者可以同时开工,不需要相互依赖,使得这样的开发效率大大的提高。

在程序中表示什么_程序开发中:什么是前后端分离?你搞清楚了吗?相关推荐

  1. (已更新)Thinkphp课程表小程序源码v1.0.0全开源版(前后端分离)

    源码功能介绍 1.情侣功能 2.情侣间留言 3.情侣间互相设置课程表背景 4.自己日.周课程表背景设置 5.教务系统课程表导入 6.导入别人分享的课表 7.导入别人分享的单课 8.多校支持 9.首页顶 ...

  2. Thinkphp课程表小程序源码v1.0.0全开源版(前后端分离)

    源码介绍 练手Lab课程表小程序源码是一个基于Thinkphp系统进行开发的前后端分离系统. 源码功能介绍 1.情侣功能 2.情侣间留言 3.情侣间互相设置课程表背景 4.自己日.周课程表背景设置 5 ...

  3. 移动端开发者眼中的前端开发流程变迁与前后端分离

    写在最开始 这是一篇面向移动端开发者的科普性文章,从前端开发的最初流程开始,结合示范代码,讨论开发流程的演变过程,希望能覆盖一部分前端开发技术栈,从而对前端开发的相关概念形成初步的认识. 本文会提供一 ...

  4. java短视频开发技术_看Java学员如何用前后端分离技术搭建短视频健身APP

    知了堂在教学过程中一直十分注重学员的实践能力,每阶段结束必有项目考核,全面检验分析学员学习效果.为更好的进行下一阶段的课程学习,本周一Java32班学员迎来了第二阶段的项目考核. 让我们来看看此次考核 ...

  5. 超详细!4小时开发一个SpringBoot+vue前后端分离博客项目!!

    小Hub领读: 前后端分离的博客项目终于出来啦,真是花了好多心思录制咧.文末直接进入B站看视频哈! 作者:吕一明 项目代码:https://github.com/MarkerHub/vueblog 项 ...

  6. 巨蟒python全栈开发flask8 MongoDB回顾 前后端分离之H5pycharm夜神

    1.MongoDB回顾 1.启动 mongod - 改变data/db位置: --dbpath D:\data\dbmongod --install 安装windows系统服务mongod --rem ...

  7. extjs 前后端分离_为什么我不喜欢「前后端分离」(个人观点,欢迎来喷)

    我不知道国外有没有「前后端分离」的运动,我只知道国内的大公司喜欢搞这个. 前后端分离大概的意思就是后端只给前端提供数据,前端负责 HTML 渲染(可以在服务器渲染,也可以在浏览器渲染)和用户交互. 说 ...

  8. mysql如何实现管理权限分离_基于SpringCloud+vue(ElementUI)+mySQL前后端分离设计之--搭建权限管理系统...

    权限图: pom.xml xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/ ...

  9. 前后端解析_好程序员Web前端教程分享前后端分离接口

    随着互联网的高速发展以及IT开发技术的升级,前后端分离已成为互联网项目开发的业界标准使用方式.在实际工作中,前后端的接口联调对接工作量占Web前端人员日常工作的30%-50%,甚至会更高.接下来的好程 ...

  10. springboot jwt token前后端分离_为什么要 前后端分离 ?

    作 者:互扯程序 来 源:互扯程序 广而告之:由于此订阅号换了个皮肤,系统自动取消了读者的公众号置顶.导致用户接受文章不及时.您可以打开订阅号,选择置顶(星标)公众号,重磅干货,第一时间送达! 本文知 ...

最新文章

  1. php 1 2 3 转arry_在PHP语言中使用JSON和将json还原成数组的方法
  2. Android 7.0使用私有NDK库的问题
  3. 【目标检测】ATSS: bridging the gap between anchor-based and anchor-free detection via ATSS (cvpr20)
  4. 前端学习(669):流程控制
  5. 下载 6g 概念及愿景白皮书_6G,到底有多6?6G概念及愿景白皮书正式发布!
  6. 【JavaScript】回流(reflow)与重绘(repaint)
  7. MFC连接MySQL数据库实例
  8. NDK开发基础④增量更新之客户端合并差分包
  9. 多个网站被挂菠菜黑链
  10. 【杂项】笔记本电脑外接显示器实现扩屏
  11. ThinkPHP自动匹配CP端移动端模板
  12. JSON的生成和解析
  13. 维智科技时空AI技术赋能金融行业
  14. 前端全栈工程师进阶学习笔记
  15. 揭开中本聪的真实身份?这只是杀毒软件之父疯狂人生中的一件小事
  16. linux编译符号那些事儿
  17. yolov3算法模型P-R曲线绘制教程(python2,python3)
  18. 传奇自定义技能栏技术分享-GEE
  19. 一年一度的科技狂欢盛会——2022亚马逊云科技re:Invent全球大会
  20. mysql中dtp是_DTP是什么运输条款

热门文章

  1. 190817每日一句
  2. 190107每日一句
  3. Atitit.搜索引擎内容来源解决之道
  4. Atitit 职位的规划与来源 1.1. 职位任命多元化 1 1.2. 上级任命 1 1.3. 自我推荐 1 1.4. 他人推荐, 1 1.5. 可以下级选举 1 1.6. 缺席任命 1 1.7.
  5. Atitit Seed-Filling种子填充算法attilax总结
  6. Atitit图片复制父目录给你设计的实现 基于win 图片浏览器
  7. atitit.跨架构 bs cs解决方案. 自定义web服务器的实现方案 java .net jetty  HttpListener
  8. Julia : 用@async提升循环性能
  9. 传统金融行业 IT 的核心竞争力究竟在何处?
  10. 通力法评 | 《证券基金经营机构信息技术管理办法》解读