BS架构(笔记整理)

楔子.基本概念

1.在网络架构中:

  • 服务器通常是集中式计算资源,负责处理和存储数据;
  • 客户机是请求这些服务的终端设备,可能是个人电脑或移动设备;
  • 浏览器则是客户机上用来与服务器交互的工具,负责展示网页内容和发送请求。(是阅读和浏览Web的工具,它是通过B/S方式与Web服务器交互信息的。 一般情况下,浏览器就是客户端,它要求服务器把指定信息传送过来,然后通过浏览器把信息显示在屏幕上。 浏览器实际上是一种允许用户浏览Web信息的软件,只不过这些信息是由Web服务器发送出来的。)

一、什么是B/S架构?

1.B/S架构是软件系统体系结构,指浏览器-Web服务器(Broswer-Server),采用三层架构,即表现层、业务逻辑层、数据访问层

2.B/S结构,主要是利用了不断成熟的浏览器技术,结合了浏览器的多种Script语言(VBScript、JavaScript…)和Active技术,通过浏览器实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S结构就是指安装维护一个服务器(Server),而客户端采用浏览器运行的软件。随着Windows将web浏览器技术植入操作系统内部,这种结构已经成为当今应用软件的首选结构体系。

二、什么是C/S架构?

B/S架构与传统的C/S架构有什么区别呢?C/S架构,即客户端/服务器架构,是一种分布式应用模式,将系统功能分为两层:客户端和服务器端。客户端负责用户界面和业务逻辑,服务器端负责数据存储和处理。C/S架构需要在每个客户端安装专用的软件,对网络和硬件资源的要求较高。

三、三层架构

1.通常是指将整个业务应用划分为:表现层、业务逻辑层、数据访问层。目的是高内聚,低耦合。

数据层:数据访问层,也称为持久层,是对数据的操作,而不是指存放数据的数据库,为业务逻辑层或表示层提供数据服务。简单来说就是实现对数据表的select,insert,update,delete的操作

四、B/S架构和C/S架构的优缺点

B/S架构和C/S架构各有优缺点,具体选择要根据系统的需求和环境来决定。下面我们来比较一下它们的主要特点:

  • 开发成本:B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,客户端零安装、零维护。系统的扩展非常容易。B/S架构的开发成本相对较低,因为可以利用现有的Web技术和工具,而且不需要考虑客户端的兼容性问题。C/S架构的开发成本相对较高,因为需要开发专门的客户端软件,并且要适应不同的操作系统和硬件环境。
  • 维护成本:B/S架构的维护成本相对较低,因为只需要升级服务器端的软件,而客户端无需安装或更新。C/S架构的维护成本相对较高,因为需要在每个客户端进行安装或更新,并且要处理各种软硬件故障。
  • 安全性:B/S架构的安全性相对较低,因为数据传输过程中容易被截取或篡改,而且客户端无法控制用户的访问权限。C/S架构的安全性相对较高,因为数据传输过程中可以采用加密或认证技术,而且客户端可以设置用户的访问权限。
  • 交互性:B/S架构的交互性相对较高,因为可以利用Web浏览器的多种脚本语言和ActiveX技术,实现动态和丰富的用户界面。C/S架构的交互性相对较低,因为客户端软件的功能和界面受限于开发工具和平台。
  • 扩展性:B/S架构的扩展性相对较高,因为可以通过增加服务器或负载均衡技术,提高系统的并发能力和可靠性。C/S架构的扩展性相对较低,因为需要考虑客户端软件的兼容性和升级问题。

综上所述,B/S架构是一种适合于Internet环境下的网络应用模式,它具有开发、维护简单,交互性强,扩展性好等优点。但是它也存在着安全性差,数据传输效率低等缺点。

五、B/S架构的几种形式

1、客户端/浏览器-服务器(web服务器+自己写的后端)-数据库
这个应该是我们平时比较常用的一种模式

(1)客户端向服务器发起Http请求
(2)服务器中的web服务层能够处理Http请求
(3)服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法
(4)如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端。

2、客户端-web服务器-应用服务器-数据库
类似于第一种方法,只是将web服务和应用服务解耦

(1) 客户端向web服务器发起Http请求

(2)web服务能够处理Http请求,并且调用应用服务器暴露在外的RESTFUL接口

(3)应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给web服务器

(4) web服务器将模版+数据组合渲染成html返回给客户端

3、客户端-负载均衡器(Nginx)-中间服务器(Node)-应用服务器-数据库
这种模式一般用在有大量的用户,高并发的应用中。

(1)暴露在外的不是真正web服务器的地址,而是负载均衡器器的地址
(2)客户向负载均衡器发起Http请求
(3)负载均衡器能够将客户端的Http请求均匀的转发给Node服务器集群
(4)Node服务器接收到Http请求之后,能够对其进行解析,并且能够调用应用服务器暴露在外的RESTFUL接口
(5)应用服务器的RESTFUL接口被调用,会执行对应的暴露方法.如果有必要和数据库进行数据交互,应用服务器会和数据库进行交互后,将json数据返回给Node
(6)Node层将模版+数据组合渲染成html返回反向代理服务器
(7)反向代理服务器将对应html返回给客户端

感激借鉴笔记:B/S架构_bs架构-CSDN博客

B/S架构及其运行原理_bs结构-CSDN博客

什么是B/S架构?_bs架构-CSDN博客

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

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

相关文章

云消息队列 ApsaraMQ Serverless 演进:高弹性低成本、更稳定更安全、智能化免运维

如今,消息队列已成为分布式架构中不可或缺的关键服务,为电商、物联网、游戏和教育等行业,提供了异步解耦、集成、高性能和高可靠的核心价值。 过去一年,我们发布了云消息队列 ApsaraMQ 全系列产品 Serverless 化,面向…

python学opencv|读取图像(六十)先后使用cv2.erode()函数和cv2.dilate()函数实现图像处理

【1】引言 前序学习进程中,先后了解了使用cv2.erode()函数和cv2.dilate()函数实现图像腐蚀和膨胀处理的效果,相关文章链接为: python学opencv|读取图像(五十八)使用cv2.erode()函数实现图像腐蚀处理-CSDN博客 pytho…

apache-poi导出excel数据

excel导出 自动设置宽度&#xff0c;设置标题框&#xff0c;设置数据边框。 excel导出 添加依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></dependency>…

STM32EXTI外部中断

EXTI外部中断 中断&#xff1a;在主程序运行过程中&#xff0c;出现了特定的中断触发条件&#xff08;中断源&#xff09;&#xff0c;使得CPU暂停当前正在运行的程序&#xff0c;转而去处理中断程序&#xff0c;处理完成后又返回原来被暂停的位置继续运行&#xff08;有点像函…

kafka生产端之架构及工作原理

文章目录 整体架构元数据更新 整体架构 消息在真正发往Kafka之前&#xff0c;有可能需要经历拦截器&#xff08;Interceptor&#xff09;、序列化器&#xff08;Serializer&#xff09;和分区器&#xff08;Partitioner&#xff09;等一系列的作用&#xff0c;那么在此之后又会…

STM32 Unix时间戳

Unix时间戳 Unix 时间戳&#xff08;Unix Timestamp&#xff09;定义为从UTC/GMT的1970年1月1日0时0分0秒开始所经过的秒数&#xff0c;不考虑闰秒 时间戳存储在一个秒计数器中&#xff0c;秒计数器为32位/64位的整型变量 世界上所有时区的秒计数器相同&#xff0c;不同时区通过…

SSM仓库物品管理系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码1.用户登录代码&#xff1a;2.保存物品信息代码&#xff1a;3.删除仓库信息代码&#xff1a; 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SSM框架开发的仓库…

[渗透测试]热门搜索引擎推荐— — shodan篇

[渗透测试]热门搜索引擎推荐— — shodan篇 免责声明&#xff1a;本文仅用于分享渗透测试工具&#xff0c;大家使用时&#xff0c;一定需要遵守相关法律法规。 除了shodan&#xff0c;还有很多其他热门的&#xff0c;比如&#xff1a;fofa、奇安信的鹰图、钟馗之眼等&#xff0…

绕组电感 - Ansys Maxwell 磁通链与电流

在本博客中&#xff0c;我将演示如何使用 Ansys Maxwell 中磁瞬态求解器的磁通链和电流结果来计算绕组电感。Ansys Maxwell 磁瞬态求解器在场计算中考虑了涡流效应&#xff0c;我将展示一种使用磁通链和电流结果来计算绕组电感的简单方法。 实际上&#xff0c;电感是非线性的…

Spring Boot牵手Redisson:分布式锁实战秘籍

一、引言 在当今的分布式系统架构中,随着业务规模的不断扩大和系统复杂度的日益增加,如何确保多个服务节点之间的数据一致性和操作的原子性成为了一个至关重要的问题。在单机环境下,我们可以轻松地使用线程锁或进程锁来控制对共享资源的访问,但在分布式系统中,由于各个服务…

Fiddler Classic(HTTP流量代理+半汉化)

目录 一、关于Fiddler (一) Fiddler Classic (二) Fiddler Everywhere (三) Fiddler Everywhere Reporter (四) FiddlerCore (五) 总结 二、 软件安全性 1. 软件安装包 2. 软件汉化dll 三、安装与半汉化 1. 正常打开安装包点击下一步安装即可&#xff0c;安装路径自…

C++适用于所有输入法的解决方案(切换输入法)

文章目录 1、方法 1&#xff1a;模拟按键切换到英文模式2、&#x1f680; 方法 2&#xff1a;直接切换到美式键盘&#xff08;适用于所有输入法&#xff09;3、&#x1f680; 方法 3&#xff1a;遍历所有输入法&#xff0c;选择第一个英文输入法4、&#x1f525; 结论5、&#…

AI大语言模型

一、AIGC和生成式AI的概念 1-1、AIGC Al Generated Content&#xff1a;AI生成内容 1-2、生成式AI&#xff1a;generative ai AIGC是生成式 AI 技术在内容创作领域的具体应用成果。 目前有许多知名的生成式 AI&#xff1a; 文本生成领域 OpenAI GPT 系列百度文心一言阿里通…

Visual Studio Code中文出现黄色框子的解决办法

Visual Studio Code中文出现黄色框子的解决办法 一、vsCode中文出现黄色框子-如图二、解决办法 一、vsCode中文出现黄色框子-如图 二、解决办法 点击 “文件”点击 “首选项”点击 “设置” 搜索框直接搜索unicode选择“文本编辑器”&#xff0c;往下滑动&#xff0c;找到“Un…

《艾尔登法环》运行时弹窗“由于找不到vcruntime140.dll,无法继续执行代码”要怎么解决?

宝子们&#xff0c;是不是在玩《艾尔登法环》的时候&#xff0c;突然弹出一个提示&#xff1a;“由于找不到vcruntime140.dll&#xff0c;无法继续执行代码”&#xff1f;这可真是让人着急上火&#xff01;别慌&#xff0c;今天就给大家唠唠这个文件为啥会丢&#xff0c;还有怎…

LabVIEW商业软件开发

在商业软件开发和仪器自动测试领域&#xff0c;LabVIEW以其图形化编程方式、高效的数据采集能力和强大的硬件集成优势&#xff0c;成为众多工程项目的核心开发工具。然而&#xff0c;商业软件的开发远不止编写代码和实现功能那么简单&#xff0c;尤其是在仪器自动测试领域&…

第40天:Web开发-JS应用VueJS框架Vite构建启动打包渲染XSS源码泄露代码审计

#知识点 1、安全开发-VueJS-搭建启动&打包安全 2、安全开发-VueJS-源码泄漏&代码审计 一、Vue搭建创建项目启动项目 1、Vue 框架搭建->基于nodejs搭建&#xff0c;安装nodejs即可 参考&#xff1a;https://cn.vuejs.org/ 已安装18.3或更高版本的Node.js 2、Vue 创建…

6、使用one-api管理统一管理大模型,并开始使用本地大模型

文章目录 本节内容介绍集中接入&#xff1a;将大模型统一管理起来当使用了大模型代理大模型代理示例 开源模型&#xff1a;如何使用Hugging Face上的模型modelscope使用 pipeline 调用模型用底层实现调用模型流式输出 如何在项目中使用开源模型使用 LangChain使用集中接入开始使…

Winform开发框架(蝇量级) MiniFramework V2.1

C/S框架网与2022年发布的一款蝇量级开发框架&#xff0c;适用于开发Windows桌面软件、数据管理应用系统、软件工具等轻量级软件&#xff0c;如&#xff1a;PLC上位机软件、数据采集与分析软件、或企业管理软件&#xff0c;进销存等。适合个人开发者快速搭建软件项目。 适用开发…

【漫话机器学习系列】087.常见的神经网络最优化算法(Common Optimizers Of Neural Nets)

常见的神经网络优化算法 1. 引言 在深度学习中&#xff0c;优化算法&#xff08;Optimizers&#xff09;用于更新神经网络的权重&#xff0c;以最小化损失函数&#xff08;Loss Function&#xff09;。一个高效的优化算法可以加速训练过程&#xff0c;并提高模型的性能和稳定…