当前位置: 首页 > news >正文

B/S 架构 与 C/S 架构

B/S 架构 与 C/S 架构

在这里插入图片描述

每博一文案

很喜欢这样一句古诗: 欲将心事付瑶琴。知音少,弦断有谁听。
有时候我们有一肚子的话想要说给别人听,但翻遍了通讯录,不知该说给谁,
即便是最近的人,彼此之间也有一层薄薄的沙隔着,生命来来往往,能走进心里的
人寥寥无几,身边有很多关系要好的人,但没有一个人知道我们为什么而难过,太多的
苦,无人可以诉说,太多的眼泪,无人能够读懂,太多的无奈,无人能够体会沉默,
是我们对这个世界竖起的最后屏障。年岁渐长,越来越明白,孤独是人生常态,没有谁能避免,
年轻的时候,总想交很多朋友,真心相待,互相扶持,但随着年龄的增长,看见了太多人心,
不测习惯了,身后无人也习惯了。孤独也明白了,有些事只能靠自己走出去。别人无能为力,
也无法替你担负别人能够看到的只有结果,需要自己独自熬过这个过程,无论有多少痛苦和委屈,
不必逢人就说,别人会安慰你,也可能会笑话你。真正能治愈自己的,始终还是自己。
有些事,不可触碰,只能沉默,有些人不可相信,是很孤独,小孩子才会到处说,
成年人都学会了自己扛,沉默与孤独作伴,希望,绝望纠缠,人生海海,珊珊而过,所有的
一切只有经历过的人,才懂 。
                                  ——————   一禅心灵庙语

关于系统架构

关于系统架构包括如下形式 :

  • C/S 架构 (客户端 / 服务器)
  • B/S 架构 (浏览器 / 服务器)

C/S 架构

C/S 架构 (客户端 Client / 服务器 Server )全称为 客户端(Client) / 服务器(Server) 体系结构, 它是一种网络体系结构,其中客户端 是用户运行应用程序的 PC端 或者是工作站,客户端要依靠服务器来获取资源。


C/S 架构的软件或者说系统有哪些 ???

QQ 就是先去腾讯的官网下载一个qq软件,几十MB,然后把这个客户端软件安装上去,然后登入进入,就可以和你的朋友聊天,就可以使用这个软件了。

C/S 架构的特点: 需要安装特定的客户端软件,才可以实现

C/S 架构的优缺点 :

  • 优点:
    1. 速度快: 因为客户端软件中的数据大部分都是集成 到客户端软件本身当中了,只有很少量的数据是从服务器端传送过来的,所以 C/S 结构的系统 速度快
    2. 界面酷炫:专门的语言去实现界面的酷炫效果,更加灵活。
    3. 体验好:因为速度快,界面酷炫,当然体验好了
    4. 服务器压力小 :因为大量的数据都是集成到客户端软件上的(也导致了,客户端占用空间大),很少量的数据从服务器端传过来,所以 C/S 结构的系统 速度快 ,通过牺牲空间,提高速度和稳定性
    5. 安全:因为大量的数据是集成到客户端软件本身上的,并且客户端有很多个,当服务器那边受损,地震了,火灾了,问题也不是很大,因为大量的数据在多个客户端上都有缓存,所以这方面来说,C/S结构的系统比较安全。
  • 缺点:
    1. 需要安装专门的客户端软件,才可以运行使用
    2. 兼容性差,对于不同的开发工具,具有较大的局限性。
    3. 升级维护比较差劲 :一旦发生一次升级,则所有的客户端的软件都需要升级,而且有一些软件还不是那么容易安装的,涉及到兼容性问题。

B/S 架构

B/S架构 (浏览器 Browser / 服务器 Server) 就是一种网络架构模式,将系统功能实现的核心部分集中到服务器中,同时简化了系统的开发,维护以及使用,通过浏览器即可运行而不需要安装其他的客户端。

**B/S 结构的系统是不是一个特殊的C/S 系统 ? ? ? **

实际上 B/S结构的系统还是一个 C/S 结构,只不过这个 C/S 比较特殊,这个 Client 是一个固定不变浏览器软件而已。


B/S 架构的特点: 不需要安装客户端,通过浏览器就可以运行使用

B/S 架构的优缺点:

  • 优点:
    1. 升级维护方便,成本低 ,因为:B/S中的数据基本上都是通过请求服务器获得的,所以我们只需要升级服务器就可以达到升级了
    2. 不需要安装特定的客户端软件,用户操作及其方便,只需要打开浏览器,输入网址即可:https://www.bilibili.com/ 或 https://www.baidu.com/
  • 缺点:
    1. 速度慢:注意不是因为带宽的问题,是因为所有的数据都是在服务器上的用户每发送每一个请求都是需要服务器全身心的响应请求,所以 B/S 架构在网络中传送的数据量比较大。)
    2. 体验差:因为界面不是那么炫酷,主要是因为浏览器只支持三个语言的解析(HTML, CSS,javaScript
    3. 不稳定:因为所有的数据都是在服务器上的,只要服务器受损了,数据丢失了,就会无法运行了。

C/S 架构 与 B/S架构的 哪个好,哪个不好

这个问题问的没有水平,在这里并没有哪个好,哪个不好的说法,因为不同的架构对应不同的业务场景下有不同的适用场景。

  • 娱乐性软件响应速度快建议使用
    • C/S架构:因为像游戏这种需要非常快的相应,对于技能的释放及时做出反应和效果,B/S 架构大量的数据是通过请求服务器获取的无法做到,而 C/S 架构大量数据是集成在本客户端上的,可以快速相应,并且界面酷炫,吸引人。
  • 公司内部使用的一些业务软件建议使用
    • B/S 架构:因为公司内部使用的系统,维护成本低,不需要太酷炫,主要是能够进行数据的维护即可。

JAVAEE

javaEE包括三大块:

  • JavaSE :

Java标准版:一套类库:别人写好的一套类库,只不过这个类库是标准类库,无论是走 JavaME 还是 JavaEE,这个JavaSE 一定要是基础。先学

  • JavaEE:

Java企业版:也是一套类库,也是别人写好的一套类库,只不过这套类库可以帮助我们完成企业级项目的开发,专门为企业内部提供解决方案的一套(多套)类库。

别人写好的,你用就行了,开发Web 网站:淘宝,京东,12306这样的。

JavaEE实际上包括很多种规范 13种规范,其中 Server 就是 JavaEE 规范之一

这是Java比较火爆的就是这个JavaEE方向。

  • JavaME:

Java微型版:还是一套类库,只不过这套类库主要是帮助我们进行 电子微型设备内核程序的开发 ,如:机顶盒内核程序,吸尘器内核程序,电冰箱内核程序,电饭煲内核程序…


web 前后端

注意了:开发B/S 架构的系统,其实就是开发网站,也就是开发一Web系统

开发一个Web系统你需要的技术:如下

  • web前端 (会一些就好,运行在浏览器上的程序)
    • HTML(网页)
    • CSS(层叠样式表语言,修饰HTML)
    • JavaScript (一种脚本语言,运行在浏览器当中的,让浏览器中的元素可以增删改,让网页产生更强的交互效果)
  • web后端 (web服务器端的程序)
    • Server (Server Apple:服务器端的Java小程序)
    • JSP
    • Ajax
    • JQuery
    • MyBats
    • Spring
    • SpringMVC
    • SpringBoot
    • SpringCloud
  • JavaEE

B/S 结构的系统通信原理

Web 系统的访问过程如下:

  1. 打开浏览器
  2. 找到地址栏
  3. 输入一个合法的网址:https://www.baidu.com
  4. 回车
  5. 在浏览器上会展示相应的结果

在这里插入图片描述

在这里插入图片描述


域名:

在这里插入图片描述


www.baidu.com 是一个百度的域名

在浏览器地址栏上输入正确的域名,回车之后,域名解析器会将域名解析出来一个具体的 IP地址端口号

解析的结果也许是 :http://110.242.68.3/index.html:百度的一个IP网址

域名解析: 是把域名指向网站空间 IP,让人们通过注册的域名可以方便地访问网站的一种服务,域名解析也叫域名指向,服务器设置,域名配置以及反向IP登记等等。说得简单点就是将好几的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。

IP地址:

IP地址 (Internet Protocol Adress ) 是指互联网协议地址,又译为网际协议地址。

IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

IP地址就相当于是计算机在网络当中的一个身份证号,在同一个网络当中,IP地址是唯一的。

如 A计算机要想和 B计算机通信,首先你就需要知道B计算机的IP地址,有了B的IP地址,才能建立连接。没有IP地址是无法建立联系的,因为别人不知道你是,在哪里,又如何建立联系呢

端口号:

所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但服务器端是有很多的端口的,一个端口就代表一个软件(一个端口就代表一个应用程序 ,一个端口仅代表一个服务),一个计算机当中有很多个软件,每一个软件启动之后都会有一个端口。通过类似的门牌号的端口号,客户端才能真正的访问到对应的服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号。端口号只有整数,范围是从 0 到 65535

端口号的主要作用: 表示一台计算机中特定进程所提供的服务。网络中的计算机是通过IP地址来代表其身份的,它只能代表某台特定计算机的位置,但是一台计算机上可以同时提供很多个服务,如:数据库服务,FTP服务,Web服务等,我们就通过端口号来区别相同计算机提供的这些不同的服务, 如常见的端口号:

  • 21 端口:表示 FTP服务
  • 23端口:表示的是Telnet服务
  • 25端口:表示的是SMTP服务
  • 8080 表示的是默认 Tomcat的端口
  • 3306表示的是默认 Mysql的的端口
  • 80 表示 http 默认端口
  • 443表示的是 https 的默认端口

注意:在同一台计算机上端口号不能重复,否则,就会产生端口号冲突,导致其中的程序无法运行。


一个Web系统的通信原理 ,通信的步骤

  1. 用户输入正确的网址(URL):https://www.baidu.com/
  2. 域名解析器进行域名解析:http://110.242.68.3/index.html
  3. 浏览器软件在网络中搜素 110.242.3这台计算机,直到找到为止
  4. 定位到 110.242.3 这台计算机上的服务器软件,通过端口 80 轻松找到了 80 端口对应的服务器软件。
  5. 80 端口对应的服务器软件得知浏览器想要的资源名是 index.html
  6. 端口 80 服务器软件找到了,名为 index.html 的文件,同时将改文件中的内容直接输出响应到浏览器上。

在这里插入图片描述

  1. 浏览器接收到来自服务器上的代码(html,css,js)
  2. 最后,通过浏览器自带的渲染引擎,渲染执行来自服务器传过来的代码(执行 HTML, CSS,JS代码,展示效果)
  • URL: 统一资源定位符: https://www.baidu.com

具体的执行流程图如下:
在这里插入图片描述
什么是请求,什么是响应 ???
请求和响应实际上说的就是数据的流向不同。
从浏览器端 (Browser) 发送数据到 服务器(Server)端:B ——> S,我们称为 请求(Request)
从服务器 (Server) 发送数据到 浏览器端 (Browser) S ——> B,我们称为 响应 (Response)


最后:

限于自身水平,其中存在的错误,希望大家给予指教,韩信点兵——多多益善,谢谢大家,后会有期,江湖再见 !!!


在这里插入图片描述


相关文章:

  • 【JAVAEE框架】Mybatis常用操作(CRUD)
  • 【PCB专题】如何在嘉立创8月1日起的新规则下免费打样
  • ElasticSearch--写入数据的流程(原理)
  • Java 下数据业务逻辑开发技术 JOOQ 和 SPL
  • 嵌入式系统多线程学习笔记
  • 【DaVinci Developer专题】-44-Software Component软件组件的Multiple Instantiation多次实例化
  • Docker 进阶指南(下)- 使用Docker Compose编排多个容器
  • 走进Prime Time系列 - 走进PT - 01
  • 天龙八部科举答题问题和答案(全4/8)
  • 【聚类算法】带你轻松搞懂K-means聚类(含代码以及详细解释)
  • 【电源专题】案例:为什么芯片支持0.8V的工作电压,但EN却又要高达1.25V?
  • 湖仓一体电商项目(十四):实时任务执行流程
  • 猿创征文|Java中的IO流大家族 (两万字详解)
  • SQL Server 2014安装教程(保姆级图解教程)
  • 大白话理解-微信小程序获取授权
  • hexo+github搭建个人博客
  • SegmentFault for Android 3.0 发布
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • ES6之路之模块详解
  • javascript从右向左截取指定位数字符的3种方法
  • JAVA并发编程--1.基础概念
  • Making An Indicator With Pure CSS
  • Objective-C 中关联引用的概念
  • 编写符合Python风格的对象
  • 成为一名优秀的Developer的书单
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 如何邀请好友注册您的网站(模拟百度网盘)
  • 山寨一个 Promise
  • 数据可视化之 Sankey 桑基图的实现
  • 腾讯视频格式如何转换成mp4 将下载的qlv文件转换成mp4的方法
  • 微信小程序设置上一页数据
  • 一个JAVA程序员成长之路分享
  • const的用法,特别是用在函数前面与后面的区别
  • MPAndroidChart 教程:Y轴 YAxis
  • 组复制官方翻译九、Group Replication Technical Details
  • ​决定德拉瓦州地区版图的关键历史事件
  • # Swust 12th acm 邀请赛# [ E ] 01 String [题解]
  • #【QT 5 调试软件后,发布相关:软件生成exe文件 + 文件打包】
  • #laravel 通过手动安装依赖PHPExcel#
  • $.ajax,axios,fetch三种ajax请求的区别
  • (1)常见O(n^2)排序算法解析
  • (14)学习笔记:动手深度学习(Pytorch神经网络基础)
  • (20)目标检测算法之YOLOv5计算预选框、详解anchor计算
  • (附源码)springboot金融新闻信息服务系统 毕业设计651450
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (算法设计与分析)第一章算法概述-习题
  • (转)Oracle 9i 数据库设计指引全集(1)
  • ******之网络***——物理***
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • ..回顾17,展望18
  • .NET CORE 3.1 集成JWT鉴权和授权2
  • .net framework 4.0中如何 输出 form 的name属性。
  • .NET Remoting学习笔记(三)信道