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

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

作者: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,前端通过访问接口来对数据进行增删改查。


相关文章
|
API C# Windows
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
Winform中实现无边框窗体只需要设置FormBorderStyle = FormBorderStyle.None,但是无边框下我们需要保留移动窗体、拖拽调整大小、自定义美观好看的标题栏等...
5629 0
Winform控件优化之无边框窗体及其拖动、调整大小和实现最大最小化关闭功能的自定义标题栏效果
|
前端开发 JavaScript 网络协议
Web开发的历史发展技术演变
本文对Web开发的历史发展的了解很有裨益,推荐给大家。本文尝试从历史发展角度,说说各种研发模式的优劣。 一、简单明快的早期时代,二、后端为主的 MVC 时代,三、Ajax 带来的 SPA 时代,四、前端为主的 MV* 时代,五、Node 带来的全栈时代
2433 0
Web开发的历史发展技术演变
|
7月前
|
存储 数据库 Python
Django模型关系:从一对多到多对多全解析
本文详解Django模型关系:一对多(ForeignKey)及多对多(ManyToManyField)关系的定义、操作与优化技巧。同时探讨外键约束的使用场景与权衡策略。
400 0
|
3月前
|
存储 数据可视化 Android开发
RPA文件怎么安装?2025全场景安装指南(含主流工具教程+避坑技巧+实在Agent实操)
本文系统解析RPA文件安装全流程,涵盖基础概念、环境配置、主流工具实操(如实在Agent、UiPath、TagUI)、多场景部署及常见问题排查。结合行业趋势与实案,助力用户高效掌握RPA自动化技能,一键解决安装难题。(238字)
993 14
|
6月前
|
人工智能 数据可视化 安全
Dify入门系列(1)| Dify 是什么?真能开启低代码 AI 应用开发?
Dify 是一个融合 BaaS 与 LLMOps 的开源平台,通过可视化编排、预置组件与企业级引擎,帮助企业快速、安全、低成本地构建 AI 应用。无论是客服机器人还是复杂业务流程,Dify 都能将开发周期从数周缩短至分钟级,推动低代码 AI 开发进入实用阶段。
|
关系型数据库 MySQL PHP
新手教程:PHP入门教程
《PHP入门教程》涵盖PHP简介、环境搭建、第一个PHP脚本、基本语法、表单处理、函数定义及进一步学习方向。PHP是一种开源脚本语言,适合Web开发。环境搭建可使用XAMPP/WAMP/MAMP或手动安装Apache、PHP和MySQL。通过编写简单代码和处理表单,逐步掌握变量、字符串、数组、条件语句和循环等基础语法。最后介绍数据库操作、会话管理和面向对象编程等高级特性。
451 70
|
缓存 监控 Java
优化Spring Boot应用的数据库访问性能
优化Spring Boot应用的数据库访问性能
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
706 2
|
监控 算法 数据处理
【学习笔记】Verilog之五:任务、函数及其他
在Verilog HDL中,任务(tasks)和函数(functions)增强了代码的可读性和重用性。任务是仅在仿真环境中使用的可封装代码,不可综合为硬件电路。任务定义包括标识符、输入/输出声明和实现代码,调用时需提供参数列表。函数与任务类似,但返回单个值,不包含时序控制,并且可以互相调用。函数定义包括返回值范围、输入声明、变量声明和执行代码。系统任务和函数如 `$display` 和 `$fopen` 提供了显示信息、文件I/O等便利功能,用于仿真控制和调试。禁止语句和命名事件则帮助控制代码执行和事件同步。
|
SQL 缓存 负载均衡
数据库设计优化:性能提升与扩展性的技术探讨
【6月更文挑战第28天】数据库设计优化聚焦性能与扩展性:SQL优化、索引策略、缓存利用及分库分表、集群技术,旨在平衡处理速度与系统稳定性。通过智能SQL、复合索引、查询缓存减少数据库压力,垂直/水平拆分与集群实现数据分布式处理,提升并发能力。