B/S 架构 与 C/S 架构

每博一文案

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

文章目录

  • B/S 架构 与 C/S 架构
    • 每博一文案
    • 关于系统架构
    • C/S 架构
      • C/S 架构的优缺点 :
    • B/S 架构
      • B/S 架构的优缺点:
    • C/S 架构 与 B/S架构的 哪个好,哪个不好
    • JAVAEE
      • web 前后端
    • B/S 结构的系统通信原理
      • 域名:
      • IP地址:
      • 端口号:
    • 最后:

关于系统架构

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

  • 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)


最后:

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



B/S 架构 与 C/S 架构相关推荐

  1. Android架构篇-1 项目组织架构

    Android架构篇-1 项目组织架构 模块化分层 1.结构清晰,各模块代码分离,符合高内聚低耦合,快速定位查找代码 2.团队协作开发灵活,互不影响,各模块完成后合并即可完成整体app 3.抽离公共层 ...

  2. 企业架构研究总结(39)——TOGAF架构能力框架之架构委员会和架构合规性

    3. 架构委员会 正如前面所说,一个用来对架构治理策略的实现进行监督的跨组织的架构委员会是架构治理策略成功的主要要素之一.架构委员会应该能够代表所有主要干系人的需求,并且通常还需要对整个架构的审查及维 ...

  3. Tomcat 架构原理解析到架构设计借鉴

    ‍ 点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 Tomcat 架构原理解析到架构设计借鉴 Tomcat 发展这 ...

  4. 谈谈架构的本质和架构分类

    一. 什么是架构和架构本质 在软件行业,对于什么是架构,都有很多的争论,每个人都有自己的理解.此君说的架构和彼君理解的架构未必是一回事.因此我们在讨论架构之前,我们先讨论架构的概念定义,概念是人认识这 ...

  5. 系统由单体架构到微服务架构到底是如何演进的?

    随着互联网的发展,互联网企业的业务也在不断的飞速发展,进而导致系统的架构也在不断的发生着变化.总体来说,系统的架构大致经历了:单体应用架构->垂直应用架构->分布式架构->SOA架构 ...

  6. 一文了解四种软件架构:Serverless架构、微服务架构、分布式架构、单体架构

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存.晋升空间.这里我列举了目前主要的四种软件架构以及他们的优缺点,希望能够帮助软件开发人员拓展知识面. 一.单体架构 单体架构 ...

  7. 一文看懂Java微服务架构,WEB2.0,垂直架构,分布式架构,微服务架构

    Java微服务架构 目录: 了解开发环境&生成环境 WEB1.0 & WEB2.0 垂直架构 分布式架构 微服务架构 1.了解开发环境&生产环境 1.1 开发环境 平时在写代码 ...

  8. DotNET企业架构应用实践-系统架构与性能-缓存技术与ORM中的缓存查询技术

    系列回顾 在前面的文章DotNET企业架构应用实践-系统架构与性能-理论依据及相关做法一文中我介绍了系统性能优化的理论做了一个概括的介绍,也简单的介绍了性能优化的过程及相关的技术关注点或者说是做法. ...

  9. 资深首席架构师眼中的架构应该是怎样的?【转】

    "架构的视角每个人都不一样,这位在eBay.携程.唯品会等平台型互联网公司都工作过的老司机就以平台架构视角和大家分享架构心得体会.一家之言,欢迎讨论. 本文首发于InfoQ垂直公众号「聊聊架 ...

  10. C/S架构和B/S架构介绍

    一.C/S架构 1. C/S架构及其背景 C/S架构是一种比较早的软件架构,主要应用于局域网内.在这之前经历了集中计算模式,随着计算机网络的进步与发展,尤其是可视化工具的应用,出现过两层C/S和三层C ...

最新文章

  1. 170多万篇论文,存储量达1.1 TB,Kaggle上线arXiv完整数据集
  2. Ubuntu下嵌入式Qt开发环境配置全攻略
  3. 【行业趋势】国内这10个AI研究院,你想好去哪个了吗?
  4. 英特尔展示体育行业与大数据技术应用
  5. mysql for 语句执行顺序_MySQL使用profile分析SQL语句执行过程
  6. ACM - 第6章 数据结构基础(2)
  7. android学习笔记---57_采用方向传感器实现指南针,android设备传感器介绍,以及使用方法
  8. 鸿蒙内部测试情况,鸿蒙OS内测曝光,安卓劲敌浮出水面!
  9. dom:原生js使div滚动到最底部
  10. Ubuntu 使用 Cron 实现计划任务
  11. matlab数字仿真实验,matlab数值仿真
  12. 北京化工大学计算机类分流,北京化工大学A类学科名单有哪些(含A、B、C类学科名单)...
  13. 版权微talk | 两部门发文,拟出台相关方案,全面加强知识产权保护
  14. netkeeper代理服务器未响应,使用netkeeper创翼网速慢解决方案(C13)
  15. 概率统计Python计算:学生分布分位点计算
  16. 如何将钉钉集成到FineReport插件中
  17. 陈强教授《机器学习及R应用》课程 第九章作业
  18. Android修行手册 - Toolbar实践
  19. Linux运维怎么从月薪2k做到年薪50w?
  20. 关于PTA中的编程任务“辛巳蛇宝男赵中瑞”

热门文章

  1. 出国计算机相关专业,加拿大计算机相关专业解析
  2. Android 使用三种方式缓存加载 倒影图片
  3. Js打开QQ聊天对话窗口
  4. EasyGBS通过GB2818下载流程结合抓包数据详细记录
  5. practice是什么意思_practice是什么意思 还有practice的用法
  6. Tables[0].Rows.count是什么意思
  7. 大家都在问华为手机图片怎么拼图?只需几步就可实现
  8. 纪念日+小游戏+工具小软件
  9. IB书单推荐:没有所谓的“闲书”
  10. 苹果手机7P ios14 nfc怎么复制门禁卡