本章属于教材第三篇「案例实践」的核心开篇章节,承接软件工程、系统设计的基础理论,聚焦 B/S 架构下信息系统的全生命周期分析与设计方法,是软考系统分析师选择题、案例分析题、论文题的高频考查模块,整体分值占比约 15%-20%。
一、本章主要内容详解
教材本章共分为 5 大节,覆盖 Web 应用从基础概念、架构设计、技术框架、开发实现到测试验证的完整链路。
16.1 Web 应用系统简介
核心定义与特征
Web 应用程序是运行在 Web 浏览器中的软件,核心优势包括易于访问、开发高效、使用简单、扩展性强,天然具备跨平台、免客户端安装的特性。
两类构建模式
传统 Web 应用:大部分业务逻辑在服务端执行,页面由服务端渲染后返回浏览器,典型代表为 JSP、PHP 开发的多页应用。
单页应用(SPA):大部分用户界面逻辑在浏览器中执行,通过 Web API 与服务端交互数据,页面无刷新切换,典型代表为 Vue、React 开发的前端应用。
16.2 Web 应用架构设计
16.2.1 架构设计 8 大原则
是 Web 系统设计的底层指导思想,也是概念题的高频考点:
分离关注点:按软件职能拆分模块,如表现层、业务层、数据层分离
封装:隐藏内部实现细节,仅暴露必要接口,控制可变状态扩散
依赖关系反转:高层模块不依赖低层模块,二者都依赖抽象
显式依赖关系:类 / 方法明确声明运行所需的依赖对象,避免隐式依赖
单一职责:每个模块仅负责一项核心功能
避免自我重复:同类业务逻辑仅在一处实现,减少冗余维护成本
持久性无知:业务逻辑层不感知底层数据存储的具体实现
有界上下文:将大型系统拆分为独立概念模块,各自独立演进
16.2.2 应用架构分类
从代码组织与部署形态维度,分为三类主流架构:
16.2.3 Web 应用架构模式
B/S 架构:浏览器 / 服务器模式,基于请求 - 响应模型,经典三层结构为表现层(客户端浏览器)、逻辑层(Web 服务器)、数据层(数据库服务器),是 Web 应用最基础的架构模式。
P2P 架构:对等网络架构,客户端之间不经过中央服务器直接通信,适用于文件共享、实时通信等场景。
MVC/MVP 架构
MVC:模型(数据存储与业务逻辑)、视图(用户界面)、控制器(输入处理与流程调度),实现表现层与业务层解耦
MVP:MVC 的演进,通过表示器(Presenter)完全隔离视图与模型,更便于单元测试
微服务架构:由多个独立小型服务组成,服务通过 HTTP API 通信,支持独立部署、多语言开发;配套技术包括服务注册发现、服务监控、服务容错等。
16.3 Web 应用开发框架
Java EE 开发框架
SSH 框架组合:经典 Java Web 企业级开发架构
Struts:基于 MVC 的 Web 层框架,通过 ActionServlet、Action、ActionForm 实现分层
Spring:业务层框架,核心为依赖注入与 AOP,负责组件管理与事务控制
Hibernate:ORM 持久层框架,封装 JDBC,实现以对象方式操作数据库
JSF:Java EE 官方组件式 Web 框架,基于组件化思想构建企业级 Web 界面。
.NET 开发框架
微软推出的企业级开发平台,支持快速 Web 应用开发,提供统一的类库与运行时环境。
Web 层前端框架
AJAX 相关类库:Prototype、jQuery、DOJO、Ext JS 等,实现页面异步交互
WebPage 3.0 等前端页面技术体系
16.4 Web 应用系统开发
16.4.1 核心通信协议
HTTP/HTTPS:Web 核心应用层协议,无连接、无状态、基于文本,是浏览器与服务器通信的基础。
RTP/RTSP:实时传输 / 流媒体控制协议,用于视频会议、直播点播等流媒体 Web 系统。
SMTP/POP3/IMAP:邮件相关协议,SMTP 负责邮件发送,POP3/IMAP 负责邮件接收;POP3 将邮件下载到本地,IMAP 保留在服务器端支持多端同步。
16.4.2 数据存储与基础设施
缓存系统:提升访问速度的核心组件,分为 4 种模型:应用服务器本地缓存、全局缓存、分布式缓存、CDN 缓存。
云存储:云端弹性存储资源,如对象存储服务,用于存放非结构化文件。
CDN(内容分发网络):分布式节点缓存静态资源,用户就近访问,降低源站压力、提升加载速度。
负载均衡器:将流量分发到多台服务器,提升系统并发能力;分为四层负载(LVS、HAProxy)和七层负载(Nginx、HAProxy),也可分为硬件负载(F5)和软件负载。
消息队列:异步解耦核心组件,缓冲峰值流量,实现业务异步处理。
16.4.3 客户端技术
包括 HTML/HTML5、XML、CSS、JavaScript、AJAX、DOM、Flash/Flex 等,负责页面展示与用户交互。其中 AJAX 实现页面局部刷新,是现代 Web 交互的基础技术。
16.4.4 服务端技术
基础技术:CGI(早期动态网页标准,支持多语言开发)、ISAPI/NSAPI
主流动态脚本:PHP、ASP/ASP.NET、JSP/Servlet
通用脚本语言:Perl、Ruby、Python
16.4.5 Web 应用系统部署
部署粒度:细粒度频繁更新会影响用户体验,通常采用灰度发布策略逐步放量
部署原则:管理用户预期、多环境全量测试、提前建立支持体系、先修复缺陷再交付
部署环境:包含操作系统与应用服务器,应用服务器需支持负载均衡、数据库连接池、缓存、版本控制等能力
版本控制与 CMS:变更管理工具,保障内容与版本对应,支持故障时快速回滚
16.5 Web 应用系统测试
16.5.1 测试概述
Web 应用测试的核心挑战:用户量大且跨平台、内容类错误需人工校验、多层架构缺陷定位难、第三方集成测试复杂、技术迭代快导致测试模型难统一。
16.5.2 测试过程
需求分析:明确测试目标与范围
定义测试策略:确定测试类型、准入准出标准、异常处理规则
确定测试环境:选型工具、人员、用例粒度
执行测试:从用户可见的界面、导航,逐步深入到功能、数据,最后验证基础设施与部署配置
16.5.3 功能测试
链接测试:验证所有链接可达、无孤立页面
表单测试:验证输入校验、异常处理、默认值、浏览器兼容性
数据校验:验证业务规则下的输入合法性校验
Cookies 测试:验证 Cookie 的存储、时效、刷新影响
数据库测试:验证数据完整性、一致性
16.5.4 性能测试
共包含 8 类核心测试:
速度测试:网络与业务处理的响应速度
负载测试:可接受响应时间内的最大并发用户数
压力测试:持续加压找到系统性能瓶颈与崩溃临界点
强度测试:极限状态下系统的性能下降幅度
并发测试:多用户同时访问时的线程安全、死锁问题
大数据量测试:海量历史数据下的系统性能
配置测试:寻找软硬件资源的最优分配方案
可靠性测试:规定时间内无故障运行的概率
测试方法主要为虚拟用户法、WUS(虚拟用户相似度)评估法。
16.5.5 安全性测试
核心测试项包括:数据加密、身份认证、日志审计、Session 超时管理、备份与恢复、访问控制、安全漏洞扫描、端口检测、服务端脚本漏洞、防火墙有效性。
16.5.6 Web 服务测试
分为三个层级:
基础设施验证:中间件的稳定性与可靠性
服务独立测试:单服务的功能、性能与描述一致性,支持多版本回归
服务集成测试:多服务协同调用的正确性与稳定性

二、主要考点与考情分析
1. 分值与题型分布
根据近 5 年考试数据,本章考查占比稳定:
上午综合知识:5-8 分,以概念辨析、技术分类、原理识记为主
下午案例分析:10-15 分,每年必考 1 道 Web 相关大题,常作为案例二或案例三
论文写作:高频选题方向,如「Web 系统架构设计」「Web 应用性能优化」「Web 安全体系建设」等
2. 核心高频考点
选择题高频考点
Web 架构模式的分类与特点(单体 / 微服务 / Serverless、MVC/MVP)
前后端技术栈分类(哪些属于客户端技术、哪些属于服务端技术)
性能测试类型辨析(负载测试 vs 压力测试 vs 强度测试)
负载均衡分层(四层 vs 七层)、缓存层级分类
基础协议功能(HTTP、SMTP/POP3、RTP 的适用场景)
Web 安全基础概念(常见漏洞、Cookie 安全属性)
案例分析高频考点
架构设计题:给出业务场景,要求选择合适的 Web 架构(如单体转微服务的改造),说明选型理由与优缺点
RESTful API 设计:考查 REST 的 6 大约束,或要求指出接口设计的问题并修正
性能优化题:给出系统响应慢的场景,要求从前端、接入层、应用层、缓存、数据库分层给出优化方案
安全防护题:给出系统漏洞现象,要求识别攻击类型(XSS、SQL 注入、CSRF 等)并给出防御措施
高并发改造题:结合电商秒杀、大促场景,设计从负载均衡到数据库的全链路高并发方案
论文高频方向
论 Web 应用系统的架构设计与演进
微服务架构在 Web 系统中的实践与权衡
Web 应用系统的性能优化策略
Web 信息系统的安全设计与防护
3. 历年考查规律
案例题通常以电商平台、企业 OA、政务系统等典型 Web 场景为载体,一道题融合「架构选型 + 性能优化 + 安全防护」多个考点
命题趋势逐步向云原生、前后端分离、微服务等现代 Web 技术倾斜,传统 CGI、Struts 等老旧技术仅做概念考查
选择题侧重细节区分,如不同缓存模型的差异、不同负载均衡技术的适用层级
三、重难点深度解析
1. 重点内容拆解
(1)RESTful API 设计原则
是案例题的超高频考点,必须掌握 6 大约束:
资源导向:用 URI 唯一标识资源,如
/users/123而非/getUser?id=123统一接口:HTTP 方法语义化:GET 查询、POST 新增、PUT 全量更新、DELETE 删除
无状态通信:服务端不保存客户端会话状态,每次请求携带完整身份信息
可缓存性:响应明确标注缓存规则,减少重复请求
分层系统:客户端无法感知中间层(代理、网关、负载均衡)的存在
按需代码(可选):服务端可返回可执行代码(如 JS)扩展客户端能力
(2)Web 性能优化分层体系
案例题答题的核心框架,按请求链路分层记忆:
前端层:资源压缩合并、图片优化、懒加载、浏览器缓存、HTTP/2
接入层:CDN 加速、负载均衡、动静分离
应用层:业务逻辑优化、异步化(消息队列)、连接池复用、无状态化水平扩展
缓存层:本地缓存 + 分布式缓存多级架构、热点数据预热、缓存失效策略
数据层:数据库索引优化、读写分离、分库分表、SQL 优化
(3)核心 Web 安全漏洞与防御
2. 难点内容辨析
(1)架构选型的权衡思维
难点在于不存在「最优架构」,需结合场景分析:
小型团队、业务稳定:优先单体架构,降低运维与开发成本
业务复杂、团队规模大、迭代速度要求高:微服务架构更合适
流量波峰波谷差异大、计算逻辑简单:可引入 Serverless 降低成本
答题时需同时说明选型理由和潜在问题,体现系统分析师的权衡能力。
(2)分布式 Web 系统的 Session 管理
分布式部署后,用户请求可能落到不同服务器,Session 共享是核心难点,三种方案的对比是易混点:
粘性 Session:负载均衡将同一用户请求固定到一台服务器,简单但失去容灾能力
Session 复制:服务器间同步 Session 数据,一致性好但同步开销大,不适合大规模集群
集中式 Session 存储:将 Session 存入 Redis 等分布式缓存,扩展性强、容灾好,是主流方案
(3)性能测试概念边界区分
选择题易混淆的概念:
负载测试:测「正常可接受范围内的最大承载」,目标是找到容量上限
压力测试:测「超出负载后的系统表现」,目标是找到崩溃临界点与瓶颈
强度测试:测「极限资源下的系统稳定性」,如 CPU / 内存不足时的性能下降幅度
四、备考建议
基础阶段:梳理本章知识框架,重点掌握架构分类、技术栈分层、测试类型等基础概念,应对选择题
强化阶段:针对案例题,重点练习「分层答题法」,如性能优化、安全防护按层级输出答案,保证逻辑完整
论文准备:积累 1-2 个 Web 项目实践素材,覆盖架构设计、性能优化、安全建设三个方向,结合本章理论框架组织内容
本文原创作者:易君召,详见:https://www.yijunzhao.cn/authors/yijunzhao,转载请注明出处。
欢迎访问 小易撩挨踢