b/s架构与c/s架构

1.什么是b/s架构?什么是c/s架构?

B/S(Browser/Server),浏览器/服务器程序
应用系统完全放在应用服务器上, 并通过应用服务器同数据库服务器进行通信,系统界面 是通过浏览器来展现的.
C/S(Client/Server),客户端/服务端,桌面应用程序!
c/s架构分为客户端和服务器两层,用户在本地安装客户端软件,通过网络与服务器相互通信,最典型的应用有QQ聊天,微信,用户只需在客户端安装应用软件,

实现与服务器之间的通信.
b/s原理:

b/s采取浏览器请求,服务器响应的工作模式。
用户可以通过浏览器去访问 internet 上由web服务器产生的文本,数据等信息;
而每一个web服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中;
从web服务器上下载程序到本地来执行,在下载的过程中若遇到与数据库有关的指令,由web服务器交给数据库来解释执行,并返回给web服务器,web服务器又返回给用户,在这种结构中,将许许多多的网络连接在一起,形成全球网
b/s架构与c/s架构_第1张图片

c/s原理:

c/s结构通常采取俩层结构。服务器负责数据的管理,客户机负责完成与用户的交互任务。
客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接受客户机的请求,将数据提交给客户机,客户机将数据进行计算并将结果呈现给用户。服务器还要提供完善安全保护及对数据完整性的处理等操作,并允许多个客户机同时访问服务器,这就对服务器的硬件处理数据能力提出了很高的要求。

b/s工作流程

  1. 客户端发送请求: 用户在客户端【浏览器页面】提交表单操作,向服务器发送请求,等待服务器响应;
  2. 服务器端处理请求: 服务器端接收并处理请求,应用服务器端通常使用服务器端技术,如JSP等,对请求进行数据处理,并产生响应;
  3. 服务器端发送响应: 服务器端把用户请求的数据(网页文件、图片、声音等等)返回给浏览器。
  4. 浏览器解释执行HTML文件,呈现用户界面。

b/s架构的分层

  1. 第一层表现层:主要完成用户和后台的交互和最终查询结果的输出功能。
  2. 第二层逻辑层:主要是利用服务器完成客户端的应用逻辑功能。
  3. 第三层数据层:主要是接受客户端请求后独立运行各种运算

三层原理

三个层次中,系统主要功能和业务逻辑都在业务逻辑层进行处理
所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”,也叫组件层。
这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才是三层体系结构,三层是指逻辑上的三层,即把这三个层放置到一台机器上。
三层体系的应用程序将业务规划、数据访问、合法性校验等工作放到了中间层进行处理。通常情况下,客户端不直接与数据库进行交互,而是通过com/dcom通讯与中间层建立连接,再经由中间层与数据库进行交互。

常见的b/s架构:

第一种:客户端-服务器-数据库
这个应该是我们平时比较常用的一种模式:
1、客户端向服务器发起Http请求

2、服务器中的web服务层能够处理Http请求

3、服务器中的应用层部分调用业务逻辑,调用业务逻辑上的方法

4、如果有必要,服务器会和数据库进行数据交换. 然后将模版+数据渲染成最终的Html, 返送给客户端
b/s架构与c/s架构_第2张图片

第二种:客户端-web服务器-应用服务器-数据库

类似于第一种方法,只是将web服务和应用服务解耦

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

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

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

4 web服务器将模版+数据组合渲染成html返回给客户端
b/s架构与c/s架构_第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架构与c/s架构_第4张图片
Nginx的优点有:
1、它能够承受、高并发的大量的请求,然后将这些请求均匀的转发给内部的服务器,分摊压力.

2、反向代理能够解决跨域引起的问题,因为Nginx,Node,应用服务器,数据库都处于内网段中。

3、Nginx非常擅长处理静态资源(img,css,js,video),所以也经常作为静态资源服务器,也就是我们平时所说的CDN

比如:前一个用户访问index.html,
经过Nginx-Node-应用服务器-数据库链路之后,Nginx会把index.html返回给用户,并且会把index.html缓存在Nginx上,

下一个用户再想请求index.html的时候,请求Nginx服务器,Nginx发现有index.html的缓存,于是就不用去请求Node层了,会直接将缓存的页面(如果没过期的话)返回给用户。

b/s和c/s的不同点:
b/s架构与c/s架构_第5张图片资料来源(指引):
三层架构(百度百科)
csdn博客参考资料(雪飞_海)
b/s架构(百度百科)

你可能感兴趣的:(面试,java,程序猿,java)