文章目录
1.系统架构的分类
系统架构分为C/S(Client/Server)架构和B/S(Browser/Server)架构。C/S架构就是客户端/服务器,B/S架构就是浏览器/服务器架构。
2.C/S架构
2.1 常见的C/S架构的软件或者系统
比如QQ、微信…
2.2 特点
需要我们下载客户端,比如我们使用QQ就要下载QQ的安装文件。
2.3 优点和缺点
优点
- 服务器压力小,速度快(因为大部分的数据都已经由安装程序携带了,当我们使用的时候,只会有很少的数据会从服务端传过来,所以速度快)
- 界面美观,体验好(因为由专门的语言(不是HTML+CSS+JS)去实现界面的设计,相对与前端那些东西更加灵活。)
- 安全(因为有多个客户端,服务器只有一个,如果服务器那边出现灾情,导致服务器损坏,但是我们多个客户端上有缓存,相对来说就安全一点)
缺点
- 后期维护麻烦,成本高(每一个客户端都需要升级,而且有些软件的安装比较麻烦)
3.B/S架构
3.1 常见的B/S架构的软件或者系统
比如各种网页服务,什么网页版京东啊乱七八糟的…
3.2 特点
不需要下载客户端,在浏览器地址栏中输入URL(统一资源定位符)就好。
3.3 优点和缺点
优点
- 升级方便,维护成本低(不需要升级客户端,只需要将服务器端升级即可)
- 操作方便(不需要下载客户端,直接输入网址跳转页面即可)
缺点
- 体验一般(因为只能由HTML、CSS和JS实现,其绚丽程度自然没有C/S架构花哨)
- 相对不安全(如果服务器那里发生了灾情,如果信息没有备份就容易出事)
- 速度慢(因为所有的数据都是从服务器那里传输过来的)
4.两种架构适合的场景
首先我们要先说两种架构没有绝对的好与坏,只有在具体的业务需求下才能有更加适合的选择。
比如说娱乐软件更加的适合C/S架构,而像一些公司内部的系统,不考虑用户体验,只要求满足业务需求即可,使用B/S架构更加的合适,别问问就是成本问题。
5.B/S架构通信原理
加入我们访问一个B/S架构的系统,我们肯定是使用浏览器访问。
除了使用导航,我们可以在地址栏上输入网址(网站名,比如mail.163.com,网站名由服务器名和域名组成,这里mail就是服务器名,163.com是域名),浏览器将我们的网址进行解析得到URL(统一资源定位符),从而跳转页面,这个时候我们的浏览器向服务器发送请求(request),然后服务器向我们的浏览器做出响应(response),传回我们需要的数据,最后这份数据再由我们的浏览器加载出来。
接下来我们主要说一说URL
当我们输入www.baidu.com之类的东西,得到的解析结果可能是http://110.242.68.3:80/index.html
而这里http是通信协议,110.242.68.3是服务器的IP地址,80是服务器上的端口号,而index.html是从需要从服务器返回的资源文件名。
浏览器会通过IP地址找到服务器,再通过端口号找到定位到服务器软件,最后返回所需要的资源。
下面是几个概念(来自百度百科)
HTTP:超文本传输协议(Hyper Text Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。请求和响应消息的头以ASCII形式给出;而消息内容则具有一个类似MIME的格式。这个简单模型是早期Web成功的有功之臣,因为它使开发和部署非常地直截了当。
IP地址:IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。
端口号:所谓的端口,就好像是门牌号一样,客户端可以通过ip地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号 [1] 。