前后端分离与不分离的本质区别!

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

作者:skaarl cnblogs.com/skaarl/p/9658114.html 2018-11-21 08:41:00


前后端不分离


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


请求的数据交互如下图:


image.png


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


前后端分离


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


对应的数据交互如下图 :


image.png


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


相关文章
|
SQL 关系型数据库 数据库
Tortoise ORM入门之理论篇
Tortoise ORM入门之理论篇
2764 0
Tortoise ORM入门之理论篇
|
API C# Windows
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
Winform中实现无边框窗体只需要设置FormBorderStyle = FormBorderStyle.None,但是无边框下我们需要保留移动窗体、拖拽调整大小、自定义美观好看的标题栏等...
5989 0
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
|
11月前
|
人工智能 数据可视化 安全
Dify入门系列(1)| Dify 是什么?真能开启低代码 AI 应用开发?
Dify 是一个融合 BaaS 与 LLMOps 的开源平台,通过可视化编排、预置组件与企业级引擎,帮助企业快速、安全、低成本地构建 AI 应用。无论是客服机器人还是复杂业务流程,Dify 都能将开发周期从数周缩短至分钟级,推动低代码 AI 开发进入实用阶段。
|
8月前
|
存储 数据可视化 Android开发
RPA文件怎么安装?2025全场景安装指南(含主流工具教程+避坑技巧+实在Agent实操)
本文系统解析RPA文件安装全流程,涵盖基础概念、环境配置、主流工具实操(如实在Agent、UiPath、TagUI)、多场景部署及常见问题排查。结合行业趋势与实案,助力用户高效掌握RPA自动化技能,一键解决安装难题。(238字)
1756 14
|
人工智能 自然语言处理 搜索推荐
AI 零成本搭建个人网站,小白 3 步搞定!通义灵码智能体+MCP 新玩法
通过AI技术,即使不编写代码也能高效开发项目。从生成诗朗诵网页到3D游戏创建,这些令人惊叹的操作如今触手可及。经过摸索,我利用AI成功上线了个人站点:https://koi0101-max.github.io/web。无需一行代码,借助强大的工具即可实现创意,让开发变得简单快捷!
4246 72
|
12月前
|
存储 数据库 Python
Django模型关系:从一对多到多对多全解析
本文详解Django模型关系:一对多(ForeignKey)及多对多(ManyToManyField)关系的定义、操作与优化技巧。同时探讨外键约束的使用场景与权衡策略。
685 0
|
缓存 监控 Java
优化Spring Boot应用的数据库访问性能
优化Spring Boot应用的数据库访问性能
|
监控 安全 大数据
关于微信支付相关安全性问题
关于微信支付相关安全性问题
关于微信支付相关安全性问题
|
监控 算法 数据处理
【学习笔记】Verilog之五:任务、函数及其他
在Verilog HDL中,任务(tasks)和函数(functions)增强了代码的可读性和重用性。任务是仅在仿真环境中使用的可封装代码,不可综合为硬件电路。任务定义包括标识符、输入/输出声明和实现代码,调用时需提供参数列表。函数与任务类似,但返回单个值,不包含时序控制,并且可以互相调用。函数定义包括返回值范围、输入声明、变量声明和执行代码。系统任务和函数如 `$display` 和 `$fopen` 提供了显示信息、文件I/O等便利功能,用于仿真控制和调试。禁止语句和命名事件则帮助控制代码执行和事件同步。