Web 框架是如何工作的?
- 首先,计算机会将网站的 HTML指令 发送到 Web 应用程序。即使应用程序是JSON 或 CSS 代码也会被转换为 HTML发送到 Web应用程序。
- 第二步,接收到 HTML 指令的 Web 应用从Web 服务器(也称为应用服务器)“下载” 网站。
这一步中,这个过程根据“请求 – 响应”模型网络协议实现。浏览器从 Web 应用进程 “请求”(Request) 数据,Web 应用进程通过发送数据来 “响应”(Respond)。
“请求 – 响应”动作只是单向的。只有 Web 浏览器可以请求数据,而 Web 应用进程不能。发送此请求指令的不同方式是 HTTP Get、HTTP Post 和 HTTP Response 代码。
Web 框架架构组件的元素
Web 框架架构的组件 包括以下元素——管理工具 (Administration Tool)、客户端层 (Client Layer)、推荐服务器 (Recommender Server) 和生成服务器 (Generator Server)。
- 管理员层或工具,包含管理、API 文档和管理。
- Recommender Server 包含 API 层、应用层(包含在线、动作、离线推荐服务)和具有数据库动作和关联规则的数据库层。
- 生成服务器有一个数据挖掘层 (Data mining layer),它包含基于动作 (action-based) 和基于内容 (content-based) 的生成器。
Web 框架架构分类
- 基于动作的架构 (Action-based Web Framework),Model-View-Controller, 模型+视图+控制器架构
MVC 是基于推送的逻辑架构。Web 应用被分成三个部分:Model、View 和 controller。数据库中的 Table 表示为 Model,业务逻辑架构包含在 Controller 中。
这种架构的好处是它允许代码重用并且模块化代码。这种架构使 Web 应用程序能够为用户显示网页,并为远程应用程序显示 Web 界面。
MVC 架构将“显示层 (Presentation)”和“业务逻辑层 (Logic Model)”分开,具有开发快捷、部署方便、可重用性高、维护成本低的优点。
基于动作的 Web 框架有 Ruby on Rails、Symfony、Spring MVC、Stripes、Django 和 Diamond。 - 基于组件的框架 (Component-based Framework)
这种框架从控制器 (controller) 或视图层 (View Layer) “拉取”数据。这种架构允许 Web 应用程序为单个视图拉取多个控制器。使用这种架构的框架有 Wicket、Lift、Tapestry、JavaServer Faces 和 JBoss Seam 等。 - 三级组织架构 (Three-tier Organization)
这种架构具有三个物理层——应用程序 (application)、数据库 (database) 和客户端 (client)。该应用程序使用业务逻辑在服务器上运行并与Web 浏览器客户端进行通信。 Web 浏览器在由 Web 应用程序生成的 HTML 上运行。
Web架构的应用场景
- 服务器端应用 (Server-side Application)
最初开发Web 框架时,是基于服务器的。这种类型的框架是必不可少的,因为它具有必要的应用程序逻辑,以确保适当的用户体验和用户界面上的交互。这些框架控制和管理数据库、处理 HTTP 请求以及对应映射 URL。
流行的服务器端框架有 Django、Symfony、Ruby on Rails、ASP.NET 和 Express Node等。 - 客户端应用 (Client-side Application)
这个框架处理用户看到和导航的界面。渲染、播放声音、播放视频、路由输入等功能由前端应用程序框架处理。这种动态框架也称为单页应用程序 (Single Page Application)。它在不加载新页面的情况下更新用户正在查看的同一页面上的数据。此过程可提高性能并减少内容重新加载时间。
客户端框架包括 Angular.js、JavaScript、Bootstrap、React js、Semantic UI 和 Backbone等。 - 移动端应用 (Mobile Application Architecture)
移动应用架构分为三层,即界面 (Presentation)、数据 (Data) 和业务 (Business)。
显示或用户界面是面向用户的层。所有的交互和操作都发生在这一层。
业务层负责工作流程并管理最终用户行为。
数据层管理数据功能、配置、通信和设置。
在开发移动框架应用程序时,需要考虑移动操作系统、存储空间、设备屏幕分辨率、屏幕尺寸和处理器能力等。
这节介绍了如何开发一个 Web 网站或者是应用,主要的 Web 架构类型。祝大家周末愉快!