原创

深入理解B/S架构

​最近看招聘信息很多都要求理解B/S架构,自己面试时也被问到过这个问题,查找了一些资料,整理出这篇博客。

一:B/S的概念

 B/S(Brower/Server,**浏览器/服务器**)模式又称B/S结构,是Web兴起后的一种网络结构模式。

浏览器是客户端最主要的应用软件,客户机上只需要安装一个浏览器,浏览器通过Web Server(网站服务器)同数据库进行数据交互,浏览器负责界面显示逻辑和极少数的事务逻辑,主要的事务逻辑在服务器端实现,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用

 二:什么是浏览器和服务器:

   浏览器:是阅读和浏览Web的工具,它是通过B/S方式与Web服务器交互信息的。

           一般情况下,浏览器就是客户端,它要求服务器把指定信息传送过来,然后通过浏览器把信息显示在屏幕上。浏览器实际上是一种允许用户浏览Web信息的软件,这些信息是由Web服务器发送出来的。

   服务器:服务器(Server),它既是计算机硬件的称谓,有时又是计算机服务端软件的称谓。

        用户应该区分开它们,主要就是从语境上去区分。

           (1)服务器是一种计算机硬件:服务器应该算是一种高性能的计算机,它作为网络的节点,存储、处理网络上的数据、信息,因此也被称为网络的灵魂。 

           (2)服务器是一种计算机软件:一般IIS服务器、Java服务器、.NET服务器等名词,,服务器实际上是一种连接在Internet上的计算机软件。它负责Web浏览器提交的文本请求。当用户使用计算机上网时,其实是访问服务器硬件。但是,这个服务器硬件上安装了服务器软件,例如IIS服务器、Java服务器、.NET服务器,它们负责接收用户的访问请求,并根据请求,经过计算将数据返回给用户的客户端(浏览器)

 三:B/S架构的优点:

1、客户端无需安装,有Web浏览器即可。 

2、B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。 

3、B/S架构客户端维护和升级方式简单,可以随时更新版本,且无需用户重新下载, 系统的扩展非常容易。

4、B/S结构利用了不断成熟的Web浏览器技术:结合浏览器的多种脚本语言,用通用浏览器实现原来需要复杂专用软件才能实现的强大功能,节约了开发成本。

四:B/S架构的缺点:

1、在跨浏览器上,B/S架构不尽如人意,经常需要针对不同的浏览器进行适配。。  

2、功能弱化,存在无法实现的功能, 性能相对较低;

3、在速度和安全性上需要花费巨大的设计成本,这是BS架构的最大问题。 

 五:C/S架构

其实B/S架构的缺点都是参照C/S架构来说的,本文不详细介绍C/S架构,简单描述一下

C/S架构是第一种比较早的软件架构。通常也称之为客户端/服务器架构。

它可以分为客户端和服务器两层:服务器运行服务端程序,客户端安装客户端软件。服务器运行服务端程序,客户端安装客户端软件。在此架构里服务端和客户端分别完成不同的任务,客户端处理用户的前端界面和交互操作,服务端处理后台业务逻辑和请求数据,这使得两端的通讯速度和通讯的效率大大的提高客户端需要安装专用的客户端软件。

C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

六:B/S与C/S的对比

这是一张对比两种架构的图片 

找了很多B/S架构相关的技术知识,梳理了一下学习顺序,整理也是一种再创作,在这个过程中加深了自己对技术的理解。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 基于SSM框架快速搭建maven后台项目

    https://www.oracle.com/java/technologies/javase-downloads.html

    咸鱼杰克
  • Flutter开发基础——Dart语法规范

    当表达式的值可以为真、假或null,并且您需要将结果传递给不接受null的对象时,此规则适用。一个常见的情况是一个判断空值的方法调用被用作条件:

    咸鱼杰克
  • 5个高效的Flutter开发工具

    当你在开发Flutter应用程序时,难以理解的日志是一个大问题,因为没有快速的方法来根据问题的严重程度过滤你的日志。抛出异常或记录一条简单的调试消息?他们看起来...

    咸鱼杰克
  • C/S和B/S两种架构区别与优缺点分析

    C/S和B/S,是再普通不过的两种软件架构方式,都可以进行同样的业务处理,甚至也可以用相同的方式实现共同的逻辑。既然如此,为何还要区分彼此呢?那我们就来看看二者...

    IT大咖说
  • 自动驾驶技术—如何训练自己的神经网络来驾驶汽车

    神经网络,特别是深度学习的研究最近在计算机视觉的领域和计算机科学的其他重要领域取得了许多突破。在这些技术的应用中,自动驾驶技术十分火热。几乎每个人都听说过它,许...

    AiTechYun
  • 如何搞定数据库水平切分?

    本文将介绍数据库架构设计中的一些基本概念,常见问题以及对应解决方案,为了便于读者理解,将以“用户中心”为例,讲解数据库架构设计的常见玩法。

    用户1737318
  • woocommerce如何隐藏/显示product meta

      前面我们说了woocommerce如何隐藏SKU,那如果不想显示产品分类category和标签tag呢?我们知道SKU, Category list 和 T...

    ytkah
  • Ubuntu 使用 Docker 安装 Gitlab

    最近帮公司重新搭建了 Gitlab,中间遇到了一些坑,折腾了不少时间,在此记录供大家参考。

    木制robot
  • Pornhub 年终总结,揭秘了全人类的性生活

    就在 2019 年 12 月 11 日,全球最大的“学习”网站 Pornhub 发布来第七个年度报告,这份报告将会给大家解读,在即将过去的 2019 年中,全球...

    龙哥
  • ADO.NET入门教程(三) 连接字符串,你小觑了吗?

    摘要       ADO.NET强大的优势在于对不同的数据源提供一致的访问。在上一篇文章《你必须知道的ADO.NET(二)了解.NET数据提供程序》中,我们知道...

    刘皓

扫码关注云+社区

领取腾讯云代金券