1 发展历程
1.1 早期
早期 web 服务器只简单地响应浏览器端的请求, 返回静态的 html.
1.2 中期
CGI 处理动态请求的 huangchanghuan 基本过程如图 B.1 所示, Web 服务器将请求数据交给 CGI 程序, CGI 程序进行运算处理, 生成 HTML 输出, 通过 Web 服务器返回给浏览器.
缺点 : 一般来说 CGI 技术 (广义上也包括 Java Servlet) 被称作脚本模式, CGI 程序需要解析 HTTP 请求, 处理业务逻辑, 并在输出流中构造响应信息的 HTML. 这种技术的优点和缺点是同一个特性 -- 可以在 CGI 程序中做任何事情. CGI 程序在获得最大处理能力的同时, 也给开发人员带来了麻烦: 负责编写业务逻辑程序的程序员不擅长处理 HTML, 而负责页面构造的美工人员则对程序束手无策. 同样维护这样的程序也是一个噩梦, 业务代码和页面语法耦合在一起, 让人无从下手.
优化 : PHP 及随后 ASP,JSP 的出现改善了这一局面, 与 CGI 在程序中输出 HTML 流正好相反, 开发人员可以在 HTML 中嵌入程序代码. 这种模式被称作服务器页面模式. 直到现在, PHP 仍然是许多中小型网站建站首选技术, 和 Apache,MySQL,Linux 共同组成一个强大的 Web 开发平台, 被称作 LAMP.
1.3 后期
既然 CGI 程序擅长处理请求信息, 而服务器页面擅长构造响应页面, 那么能不能将两者结合起来呢? 答案就是 MVC(模型 - 视图 - 控制器)模式, 如图 B.2 所示, 控制器接收处理所有的 HTTP 请求, 根据请求信息将其分发给不同的模型对象处理, 再根据模型处理结果选择构造视图, 得到最终响应信息. 使用 MVC 模式可以很好地分离模型与视图, 使二者完全解耦, 互相影响降到最低.
模型和视图分离为系统开发维护带来了诸多好处, 为目前 Web 开发流畅的分层架构模式奠定了基础. 分层模式可以更进一步分离关注面和降低系统的耦合性, 通过分层, 隔离上层对下层的直接依赖, 上层设计无需过多考虑下层实现; 各层之间较少耦合, 只要保持接口规范不变, 各层可以随意替换和复用. Web 开发中通常将服务端划分为三层: 表现层, 业务逻辑层和数据源层. 表现层完成视图展现和用户交互; 业务逻辑层实现系统的核心逻辑; 数据源层负责数据存储, 交换和通信. 这种层次划分是逻辑上的, 物理部署上多个层会作为一个应用部署在一起.
Web 开发技术发展历程(笔记)
来源: http://www.bubuko.com/infodetail-3506085.html