Web开发

首页 » 常识 » 诊断 » Web应用程序架构最新指南
TUhjnbcbe - 2023/7/22 22:01:00

在本文中,您将了解Web应用程序架构图的外观以及如何为Web应用程序设计正确的架构。

当用户登录到台式机/笔记本电脑或移动设备,打开浏览器并键入网站名称时,浏览器会显示所需信息,用户会在网站上执行操作。你有没有想过计算机如何检索这些信息以及在后台发生了什么?它是一种底层Web应用程序架构,使此过程成为可能。在本文中,您将了解什么是Web应用程序架构、Web应用程序架构图的外观以及如何为Web应用程序设计正确的架构。

Web应用程序架构概述

Web应用程序架构展示了包含所有软件组件(例如数据库、应用程序和中间件)以及它们如何相互交互的布局。它定义了数据如何通过HTTP传递,并确保客户端服务器和后端服务器能够理解。此外,它还确保所有用户请求中都存在有效数据。它创建和管理记录,同时提供基于权限的访问和身份验证。选择正确的设计决定了您公司的发展、可靠性和互操作性以及未来的IT需求。因此,了解构成Web应用程序架构的组件非常重要。

Web应用程序架构组件

通常,基于Web的应用程序架构包括三个核心组件:

1)Web浏览器:浏览器或客户端组件或前端组件是与用户交互、接收输入并管理表示逻辑同时控制用户与应用程序交互的关键组件。如果需要,也会验证用户输入。

2)Web服务器:Web服务器也称为后端组件或服务器端组件,通过将请求路由到正确的组件并管理整个应用程序操作来处理业务逻辑和处理用户请求。它可以运行和监督来自各种客户端的请求。

)数据库服务器:数据库服务器为应用程序提供所需的数据。它处理与数据相关的任务。在多层架构中,数据库服务器可以在存储过程的帮助下管理业务逻辑。

什么是三层架构?

在传统的2层架构中,有两个组件,即客户端系统或用户界面和通常是数据库服务器的后端系统。这里的业务逻辑被合并到用户界面或数据库服务器中。2层架构的缺点是随着用户数量的增加,性能会下降。此外,数据库与用户设备的直接交互也引发了一些安全问题。铁路预订系统和内容管理系统是通常使用此架构构建的几个应用程序。

当谈到层架构时,有三层:

表现层/客户层应用层/业务层数据层

在此模型中,中间服务器接收客户端请求并通过与应用业务逻辑的从属服务器协调来处理它们。客户端和数据库之间的通信由中间应用层管理,从而使客户端能够访问来自不同DBMS解决方案的数据。

层架构更安全,因为客户端不直接访问数据。在多台机器上部署应用程序服务器的能力提供了更高的可伸缩性、更好的性能和更好的重用性。您可以通过独立缩放每个项目来水平缩放它。您可以将核心业务从数据库服务器中抽象出来,高效地进行负载均衡。当所有数据都通过应用程序服务器时,数据完整性得到改善,应用程序服务器决定数据应该如何访问以及由谁访问。因此,管理层的变更既简单又具有成本效益。客户端层可以是瘦客户端,这意味着硬件成本会降低。这种模块化模型允许您修改单个层而不影响其余组件。

现代Web应用程序架构的层次

构建分层的现代Web应用程序架构可帮助您识别应用程序每个组件的角色,并轻松地对相应层进行更改,而不会影响整个应用程序。它使您能够轻松地编写、调试、管理和重用代码。

Web应用架构的三层:

表现层/客户层应用层/业务逻辑层数据层

这是一个额外的网络应用程序层次结构图,供您参考:

应用层:Web服务器

什么是网络服务器?简而言之,网络服务器运行一个或多个网站或网络应用程序。Web服务器使用超文本传输协议(HTTP)以及其他协议来通过浏览器侦听用户请求。它通过应用业务逻辑并将请求的内容交付给最终用户来处理它们。

Web服务器可以是硬件设备或软件程序。

硬件Web服务器:连接到Internet的计算机设备,包含Web服务器软件和Web应用程序组件,例如图像、HTML文档、JS文件和CSS样式表。软件Web服务器:这是理解URL和HTTP协议的软件。用户可以通过域名访问它来接收请求的内容。

静态Web服务器将内容按原样交付给浏览器,而动态Web服务器会在将数据交付给浏览器之前更新数据。

Apache是ApacheSoftwareFoundation推出的一种流行的开源Web服务器。它由RobertMcCool于年使用C和XML开发。Apache基于进程驱动模型,其中每个请求都会导致创建一个新线程。Apache的模块化设计使您可以轻松扩展单个资源。使用最少的配置,您甚至可以管理大量流量。它适用于MacOS、Windows和Linux环境。但是,Linux是Apache最喜欢的环境。

虽然它使用文件系统来处理静态内容,但动态内容是在服务器内处理的。使用.htaccess文件,您可以对服务器设置执行其他配置。安全性很好。它通过IRC、StackOverflow和邮件列表提供支持。

NGINX是另一种流行的Web服务器,通常发音为“EngineX”。NGINX由IgorSysoev于年开发,迅速流行起来。它在事件驱动模型上运行,其中数千个请求在单个线程中处理,以最少的资源提供更多。它使用PHP提供静态资源,提供静态内容的速度比Apache快2.5倍。动态内容通过外部进程提供。在解释请求时,Apache传递文件系统位置,而NGINX传递URI。此功能将NGINX功能扩展为负载平衡器、HTTP缓存和代理服务器。

虽然它支持基于Unix的操作系统,但Windows兼容性有限。您不能进行其他配置。较小的代码库提供更好的安全性。不支持动态模块。除了邮件列表和IRC,论坛也可用。

NGINX比Apache有优势,因为它既可以用作Web服务器,也可以用作代理服务器。在单个线程中处理数千个请求的事件驱动方法可提供更高的性能、速度和成本效益。

表示层:客户端组件(前端)

Web应用程序体系结构的客户端组件使用户能够通过浏览器与服务器和后端服务进行交互。代码驻留在浏览器中,接收请求并向用户显示所需信息。这就是UI/UX设计、仪表板、通知、配置设置、布局和交互元素发挥作用的地方。

以下是一些最常用的前端技术:

HTML

HTML或超文本标记语言是一种流行的标准标记语言,它使开发人员能够使用一系列页面元素来构建网页内容。由TimBerners-Lee开发并于年发布的HTML迅速发展并成为全球标准标记语言。

CSS

CSS或层叠样式表是一种流行的样式表语言,它使开发人员能够为使用标记语言开发的网站分离网站内容和布局。使用CSS,您可以为元素定义样式并多次重复使用它们。同样,您可以在多个站点上应用一种样式。它简单易学。您可以为单个元素、整个网页或整个网站应用样式。它也是设备友好的。

浏览器兼容性和安全性是引起

1
查看完整版本: Web应用程序架构最新指南