本文从静态页面、多媒体阶段、CGI阶段、Ajax、MVC、RESTful、云服务七个方面说明Web技术演化。
1.1 静态页面
1.2 多媒体阶段
1.3 CGI阶段
在这个时候,各种编程语言如PHP/ASP/JSP也逐渐加入市场,基于这些语言可以实现更加模块化的、功能更强大的应用程序。
1.4 Ajax
1.5 MVC
Model,View和Controller的分开,是一种典型的关注点分离的思想,使得代码复用性和组织性更好,Web应用的配置性和灵活性也越来越好。而数据访问也逐渐通过面向对象的方式来替代直接的SQL访问,出现了ORM(Object Relation Mapping)的概念。
除了MVC,类似的设计思想还有MVP,MVVM等。
1.6 RESTful
此时,REST(Representation State Transformation)逐渐成为一种流行的Web架构风格。
REST鼓励基于URL来组织系统功能,充分利用HTTP本身的语义,而不是仅仅将HTTP作为一种远程数据传输协议。一般RESTful有以下的特征:
api.example.com
example.com/api/
域名和主域名分开
api.example.com/v1
api.example.com/v2
带有版本控制
GET /users 获取所有用户
GET /team/:team/users 获取某团队所有用户
POST /users 创建用户
PATCH/PUT /users 修改某个用户数据
DELETE /users 删除某个用户数据
使用URL定位资源
GET 获取资源,单个或多个
POST 创建资源
PUT/PATCH 更新资源,客户端提供完整的资源数据
DELETE 删除资源
用 HTTP 动词描述操作
使用状态码提高返回数据的可读性
正确使用状态码
默认使用 JSON 作为数据响应格式
有清晰的文档
1.7 云服务
在这个阶段,Web的架构也越发复杂,代理服务、负载均衡、数据库分表、异地容灾、缓存、CDN、消息队列、安全防护等技术应用越来越广泛,增加了Web开发和运维的复杂度。
随着架构的继续发展,应用的运行更加细粒度,部署环境容器化,各个功能拆成微服务或是Serverless的架构。
1.7.1 Serverless
Serverless 架构由两部分组成,即 Faas(Function-as-a-Service) 和 BaaS(Backend-as-a-Service)。
FaaS是运行平台,用户上传需要执行的逻辑函数如一些定时任务、数据处理任务等到云函数平台,配置执行条件触发器、路由等等,就可以通过云平台完成函数的执行。
BaaS包含了后端服务组件,它基于 API 完成第三方服务,主要是数据库、对象存储、消息队列、日志服务等等。
1.7.2 CI/CD
持续集成(CI,Continuous Integration)是让开发人员将工作集成到共享分支中的过程。频繁的集成有助于解决隔离,减少每次提交的大小,以降低合并冲突的可能性。
持续交付(CD,Continuous Deployment)是持续集成的扩展,它将构建从集成测试套件部署到预生产环境。这使得它可以直接在类生产环境中评估每个构建,因此开发人员可以在无需增加任何工作量的情况下,验证bug修复或者测试新特性。
1.7.3 API网关
API网关是一个服务器,客户端只需要使用简单的访问方式,统一访问API网关,由API网关来代理对后端服务的访问,同时由于服务治理特性统一放到API网关上面,服务治理特性的变更可以做到对客户端透明,一定程度上实现了服务治理等基础特性和业务服务的解耦,服务治理特性的升级也比较容易实现。
注:文章来源于网络。
如有侵权,请于后台联系,做删除处理,感谢您的支持。

