- 分类
- 架构:MVC、MVP、MVVM、REST、WebService、微服务
- 缓存:MemCache、Redis、Squid
- 并发:集群、负载均衡、CDN
- 数据库:主从、内存数据库、反规范化、NoSQL、分区分表、视图
- 数据编码:XML、JSON
- 其他:有状态、无状态、响应式 Web 设计
- Web 技术演变
- 单台机器到数据库与 Web 服务器分离
- 应用服务器集群
- 采用负载均衡
- 数据库集群
- 缓存缓解 DB 压力
- CDN:内容分发网络
- 构建在网络之上,部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能,使用户就近获取所需内容,降低网络拥塞,关键技术有内容存储和分发技术
- 基本原理:广泛采用各种缓存服务器、将这些缓存服务器分布到用户访问相对集中的地区或网络
- REST:只用 HTTP 和 XML 进行 Web 通信,降低开发复杂性
- 原则
- 所有事物都抽象为资源
- 每个资源有唯一的资源标识
- 通过通用的连接件接口操作资源
- 各种操作都不会改变资源标识
- 无状态
- 原则
- 微服务架构
- 将大型复杂的单体架构应用划分为一组微小的服务,每个微服务提供单一的业务功能,很容易部署并发布到生产环境里隔离和独立的进程内部
- 优势
- 解决复杂性问题
- 每个服务能够独立开发
- 每个微服务独立配置
- 每个服务独立调整
- 挑战
- 并非所有系统都能转化为微服务
- 部署更加复杂
- 性能问题
- 数据一致性问题
- 扩展标记语言
- XML,标记电子文件使其具有结构性的标记语言
- 优点:格式统一、符合标准,容易与其他系统进行远程交互
- 缺点:文件庞大、文件格式复杂;解析复杂;解析 XML 方式可能不一致
- JSON
- 轻量级数据交换格式,可在不同平台进行数据交换
- 优点:格式简单、易于解析、支持多种语言,简化服务端和客户端代码开发量
- 无状态服务
- 对单次请求的处理,不依赖其他请求,服务器本身不存储信息
- 响应式 web 设计
- 智能地根据用户行为以及使用的设备环境进行响应的布局