当你知道前后端分离与不分离的6个特点,你就不该再当点工了!

news2024/11/24 15:30:22

前后端不分离

在早期,Web 应用开发主要采用前后端不分离的方式,它是以后端直接渲染模板完成响应为主的一种开发模式。以前后端不分离方式开发的 Web 应用的架构图如下:

浏览器向服务器发起请求,服务器接收到请求后去数据库中获取数据,然后渲染 HTML 模板并返回渲染后的 HTML 数据,或者返回一个重定向。绝大部分工作都在后端进行处理,客户端(浏览器)只负责页面的展示和用户交互。

这种开发方式有如下特点:

  • 一般一个应用只需要一个后台服务器

  • 客户端只需要请求不同的页面,服务器会完成页面上的所有数据逻辑,所以 http 请求次数较少

  • 每个请求都是一个 HTML,会有大量的冗余数据

  • 开发时,前后端代码耦合高,出了问题责任不明确

  • 在开发单纯的网站时,效率非常高

  • 响应数据是 HTML,只能适应单一客户端,当需要多端支持时如要单独开发

前后端分离

随着 AJAX 技术的出现,可以在不刷新页面向服务器发送 http 请求,所以又出现了前后端分离的开发模式。

后端只要开发接口即可,前端可以通过发起 AJAX 请求,拿到后端的数据,渲染和怎样调用接口的事情,交给前端。以前后端分离方式开发的 Web 应用的结构图如下:

这种开发方式有如下特点:

  • 是目前 Web 开发的主流模式

  • 需要静态文件服务器和后端接口服务器

  • 后台服务器只提供的数据接口的服务,响应的往往是 JSON 数据

  • 开发时,前后端责任分工明确

  • 前后端解耦合,可以同时开发,提高开发效率

  • 一个后台即可满足网站、app、小程序等多种应用的需要

总结

对于前后端不分离的应用,一般只需要进行功能测试。对于前后端分离的应用,既需要进行功能测试,还需要进行接口测试,并且在进行功能测试时还需要分析 bug 是前端还是后端的问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/725249.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大数据之数据采集项目延伸——sqoop

承接上篇文章 大数据之数据采集项目总结——hadoop,hive,openresty,frcp,nginx,flume https://blog.csdn.net/qq_43759478/article/details/131520375?spm1001.2014.3001.5501 在上个阶段:完成了数据收集&…

查找满足条件的文件

linux 系统下查询当前多个子目录下满足条件的文件 find ./ -mindepth 2 -name *.png

attention中为啥multi-head输出结果进行concat,得到x,x还要乘上一个WO矩阵?

刚刚在敲vit模型代码,突然一个疑问,就是multi-head输出结果进行concat,得到x,x的维度是预期维度,然后再乘以一个WO矩阵,为啥要乘上一个WO矩阵,x的维度已经是预期的了??&a…

C#基础学习_类的方法

C#基础学习_类的方法 概念:描述对象的动态特征 类型:实例方法、静态方法等 方法的定义: 访问修饰符(默认为private) 返回值类型 方法名(类型 参数1,类型 参数2,...) {//这里编写方法的主体(功能实现的具体过程)return 返回值; //若没有返回值,则不需要写该语句 }

2023年第四届“华数杯”全国大学生数学建模竞赛(附历年赛题和论文)

目录 华数杯简介大赛资料获取方式 华数杯简介 国赛前的预热”华数杯“第四届正在报名中,看到咨询我们的同学不少,挺多同学都非常感兴趣,但是又不清楚比赛的相关情况,这里将会给同学们一一答疑。 比赛难度:难度适中&am…

【面试常见】JS继承与原型、原型链

前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库 web前端面试题库 VS java后端面试题库大全 在 JavaScript 中,继承是实现代码复用和构建对象关系的重要概念。本文将讨论原型链继承、构造函数继承以及…

QML Canvas 制作动画

作者: 一去、二三里 个人微信号: iwaleon 微信公众号: 高效程序员 终于要介绍动画了,这意味着我们快要把 Canvas 学完了,所以是时候庆祝一下了… 要在 Canvas 上实现动画,需要间隔一定的时间重绘动画的下一帧,而且频率要足够快,这样才能在图像切换时看起来像动画一样。…

一篇文章让你搞懂字符指针,数组指针,指针数组,数组传参和指针传参,函数指针

回顾 首先我们来大概回顾一下指针初阶的知识 内存会划分为一个个的内存单元,每个内存单元都有一个独立的编号—编号也被称为地址,地址在C语言中也被称为指针,指针(地址)需要存储起来—存储到变量中,这个变…

【Redis】缓存穿透、缓存击穿、缓存雪崩的原因及解决方案

文章目录 一、缓存穿透1.1 产生原因1.2 解决方法接口校验对空值进行缓存使用布隆过滤器实时监控 二、缓存雪崩2.2 解决方法将失效时间分散开给业务添加多级缓存构建缓存高可用集群使用锁或者队列的方式设置缓存标记 三、缓存击穿3.2 解决方法使用互斥锁”提前“使用互斥锁 / 逻…

QT开发技巧之QTableWidget设置表头颜色字体

1.默认的表头和内容背景字体一样不好区别,可以通过qss设置修改表头样式 2.修改后效果如下 qss代码: /*表格头背景色*/ QHeaderView::section { background: rgb(128, 255, 255); font-family: "宋体"; font-weight:bold; font-size:16px; }

网站弱口令爆破小脚本

介绍 weakpass_exploit,网站弱口令爆破小脚本 优点: 绕过图形验证码 绕过前端数据加密 不足: ddddocr识别不够精确 单线程 注: 本项目所有文件仅供学习和研究使用,请勿使用项目中的技术源码用于非法用途,任何人造成的任何负面影响,与…

什么是linux内存节点?为什么要有内存节点?

什么是内存节点 在Linux中,内存节点指的是NUMA(Non-Uniform Memory Access)架构中的逻辑内存节点,也被称为内存域(Memory Domain)。NUMA是一种多处理器体系结构,其中每个处理器都有自己的本地内…

FP32、FP16 和 INT8

文章目录 FP32、FP16 和 INT81. FP322. FP163. INT8 FP32、FP16 和 INT8 当涉及到深度学习和计算任务时,FP32、FP16、INT8 和 INT4 是常用的数据类型,用于表示不同的数值精度和存储需求。 1. FP32 单精度浮点数:提供了较高的精度和动态范围…

彻底解决IJ IDEA 代码运行时中文乱码 | 完美解决方案

前言: 在我们刚接触到IDEA时,想美滋滋的敲一个“hello world”来问候这个世界,但难免会遇到这种问题 乱码!乱码!乱码! 内心的崩溃就在一瞬间,下面我就来分享几个实用的解决方法 1.调整系统语…

Plant Physiology:DAP-seq技术在毛白杨PtoWRKY68等位基因变异调控干旱胁迫响应机制研究中的应用

干旱胁迫限制了树木的生长,并影响其地域性分布。为了应对干旱胁迫,植物进化出了一系列的生理生化反应机制,以保护植物细胞免受损害。因此,研究干旱胁迫下树木生理和光合作用变化的分子机制,将有助于培育耐旱性树木新品…

excel 表格多行自动合并

在现实生活中常常遇到这样的一些需求 使用的是三方的插件来实现的 参考: 慧办公-官网 (hbg666.com) (支持 Office 及 WPS)下载地址: https://www.hbg666.com/ 使用方法系统都有教导

单片机第一季:零基础4——数码管

1,第七章:静态数码管和动态数码管 工作原理: (1)亮灭原理(其实就是内部的照明LED); (2)显示数字(甚至文字)原理:利用内部的LED的亮和灭让外部的组成数字的笔画显示或者不显示&#…

IDEA 错误:找不到或无法加载主类Main 完美解决方法

今天在运行项目的时候 Rebuild Prodject 后突然出了这样一个错误:IDEA 错误 找不到或无法加载主类,相信只要是用过IDEA的朋友都遇到过它吧,把我自己搞的焦头烂额!!csdn翻遍了没解决 1,未能成功编译; 尝试&a…

pycharm的一些常用设置

pycharm的一些常用设置 1、最新安装pycharm ,怎么设置解释器如图: 2、可通过鼠标放大缩小配置: 进入setting>Editor>File and Code Templates,点击python script,进行设置: """Author : A Tim…

【C语言初阶】带你轻松掌握指针基础知识完结篇——野指针,指针运算,指针和数组,二级指针

君兮_的个人主页 勤时当勉励 岁月不待人 C/C 游戏开发 Hello,这里是君兮_,今天继续给大家更新0基础入门C语言的内容,我们这次主要更新的依然是初阶指针的基础知识 废话不多说咱们直接开始吧!! 指针基础 一. 野指针1.…