BS架构

-

架构

传统应用开发架构分为BS和CS两种架构

CS架构Client Server

  • 客户机-服务器,即CS架构,CS架构通常采用两层结构,服务器负责数据的管理,客户机负责完成与用户的交互任务。
  • 客户机通过局域网与服务器相连,接受用户的请求,并通过网络向服务器提出请求,对数据库进行操作。服务器接收客户端的请求,将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。服务器 还要提供完善安全保护以及对数据完整性的处理等操作,并允许多个客户端同时访问服务器,这就对服务器的硬件处理数据能力提出了很高的要求。
  • 在CS架构中,应用程序分为两部分:客户端部分和服务器部分。服务器部分是多个用户共享信息和功能,执行后台服务,如控制共享数据库的操作等;客户端为用户专有,负责执行前台功能,在出错提示,在线帮助等方面都有强大的功能,并且可以在子程序之间自由切换。
  • CS结构在技术上已经很成熟,它的主要特点就是交互性强,具有安全的存取模式,响应速度快,利于处理大量数据,但是CS结构缺少通用性,系统维护、升级需要重新设计和开发,增加了维护和管理的难度,进一步的数据拓展困难较多,所以CS架构只限于小型的局域网。
  • CS架构主要应用与超市收银台,早期的医院挂号系统等,以及PC电脑程序,现如今主流的移动手机app。

BS架构Browser Server

  • 随着网络技术的发展,特别随着web技术的不断成熟,BS这种软件体系结构出现了。BS架构也被称为浏览器-服务器体系架构,这种 体系架构可以理解为是对CS架构的改变和促进。
  • 由于网络的快速发展,BS架构的功能越来越强大。这种结构可以进行信息的分布式处理、可以有效降低资源成本,提高设计的系统性能。BS架构有更广的应用范围。在处理模式上大大简化了客户端,用户只需安装浏览器即可。而将应用逻辑集中在服务器和中间件上,可以体改数据的处理性能,在软件的通用性上,BS架构的客户端具有更好的通用性,对应用环境的依赖性小,同时因为客户端使用浏览器,在开发维护上更加便利,可以 减少系统开发和维护成本。
  • BS架构的特征和基本结构:在BS结构中,每个节点都发布在网络上,这些节点分为浏览器端,服务器端和中间件,通过它们之间的连接和交互来完成系统的功能任务。三个层次的划分是从逻辑上分的,在实际应用中多根据实际物理网络进行不同的物理划分。
  • 浏览器端:即用户使用的浏览器,是用户操作系统的接口,用户通过浏览器阶段向服务器端发送请求,并杜伊服务器端返回的结果进行处理并展示,通过界面可以将系统的逻辑功能更好的表现出来。
  • 服务器端(具体的服务器):提供数据服务,操作数据,然后把数据结果返回中间件,结果展示在系统页面上
  • 中间件(运行在服务器上的应用,比如java应用,.net应用 ,PHP应用,作用就是进行数据库和网页之间的数据操做):这是运行在浏览器和服务器之际按的,这层主要完成系统逻辑,实现具体的功能,接收用户的请求并把这些请求传送给服务器,然后将服务器的结果返回给用户,浏览器和服务器端需要交互的信息使用过中间件完成的。
  • 就是说web前端工作岗位的程序员目前大部分的工作都是在BS架构上进行开发的,cs加工后相当于做手机app或者是pc-app的工程师做的工作
  • bs架构是以浏览器为主,cs架构是以客户端为主,他们都是通过http协议向服务器请求数据与远程服务器进行交互的

B/S架构的分层

  • 表示层:主要完成用户与应用程序之间的交互,包括接受用户输入的数据,显示应用的输出结果。在此层中,通常不包括系统的业务逻辑,逻辑代码仅与界面元素有关。如分页显示、图片轮播等。

  • 业务逻辑层:负责实现应用/业务的主要功能,当前端需要进行数据访问和其他操作时,前端向业务逻辑层发送请求,由业务逻辑层向数据库发送请求完成数据查询等,并在前端和服务端之间传输数据。

  • 数据访问层:是系统的持久层,负责对数据库的读写及管理。

BS架构的形式以及链路过程

  • 这里先明确一个事情,数据链路之间的传输用的是http和tcp协议,http协议是应用层的,tcp/udp是传输层的,http是在tcp协议之上拓展而来的,所以HTTP是在保证tcp的规则下拓展的一套传输协议
    • TCP和UDP是FTP,HTTP和SMTP之类使用的传输层协议。虽然TCP和UDP都是用来传输其他协议的,它们却有一个显著的不同:TCP提供有保证的数据传输,而UDP不提供。这意味着TCP有一个特殊的机制来确保数据安全的不出错的从一个端点传到另一个端点,而UDP不提供任何这样的保证。
    • HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议。客户端使用Web浏览器发起HTTP请求给Web服务器,Web服务器发送被请求的信息给客户端。
    • 简单的来说tcp/udp是机器与机器之间的传输协议,HTTP是浏览器和浏览器和机器之间的传输协议
  1. 输入网址
  • 输入想要访问的网站地址,俗称url
  1. 缓存解析
  • 浏览器获取到url后去解析,先看缓存中有没有,浏览器-系统缓存-路由器缓存中查看,如果有则从缓存中显示页面,如果没有就进行步骤三
  • disk cache:将资源缓存到磁盘中,等待下次访问是不需要重新下载找资源,而直接从磁盘中获取
  • memory cache:将资源缓存到内存中,等待下次访问是不需要重新下载找资源,而直接从内存中获取
  1. 域名解析
  • DNS解析:域名到IP地址的转化过程。域名的解析工作由DNS服务器完成,解析后可以获取域名相应的IP地址
  1. tcp连接
  • 在域名解析之后,浏览器向服务器发起http请求,tcp连接,三次握手建立连接。tcp协议是面向连接的,所以在传输数据之前必须建立连接
  1. 服务器收到请求
  • 服务器收到浏览器发送的请求信息,返回一个响应头和响应体
  1. 页面渲染
  • 浏览器收到服务器发送的响应头和响应体,进行客户端渲染,生成Dom树,解析css样式、js交互。