没有合适的资源?快使用搜索试试~ 我知道了~
一个对学习ajax挺有用的一份电子书,希望大家喜欢
资源详情
资源评论
资源推荐
Ajax 基础教程
制作:badnewfish
联系:http://badnewfish.cnblogs.com
1.2
浏览器历史
提到 Web 浏览器,大多数人都会想到无处不在的 Microsoft Internet Explorer,直到最近
像 Firefox、Safari 和 Opera 之类的浏览器日益兴起,这种情况才稍有改观。许多新手可能会
误认为 IE 是市场上的第一个浏览器,其实不然。实际上,第一个 Web 浏览器出自 Berners-
Lee 之手,这是他为 NeXT 计算机创建的(这个 Web 浏览器原来取名叫 WorldWideWeb,后
来改名为 Nexus),并在 1990 年发布给 CERN 的人员使用。Berners-Lee 和 Jean-Francois
Groff 将 WorldWideWeb 移植到 C,并把这个浏览器改名为 libwww。20 世纪 90 年代初出现
了许多浏览器,包括 Nicola Pellow 编写的行模式浏览器(这个浏览器允许任何系统的用户都
能访问 Internet,从 Unix 到 Microsoft DOS 都涵盖在内),还有 Samba,这是第一个面向
Macintosh 的浏览器。
1993 年 2 月,伊利诺伊大学 Urbana-Champaign 分校美国国家超级计算应用中心的 Marc
Andreessen 和 Eric Bina 发布了 Unix 版本的 Mosaic。几个月之后,Aleks Totic 发布了 Mosaic
的 Macintosh 版本,这使得 Mosaic 成为第一个跨平台浏览器,它很快得到普及,并成为最流
行的 Web 浏览器[1]。这项技术后来卖给了 Spyglass,最后又归入 Microsoft 的门下,并应用
在 Internet Explorer 中。
1993 年,堪萨斯大学的开发人员编写了一个基于文本的浏览器,叫做 Lynx,它成为了
字符终端的标准。1994 年,挪威奥斯陆的一个小组开发了 Opera,到 1996 年这个浏览器得
到了广泛使用。1994 年 12 月,Netscape 发布了 Mozilla 的 1.0 版,第一个盈利性质的浏览器
从此诞生。2002 年又发布了一个开源的版本,这最终发展为 2004 年 11 月发布的、现在十分
流行的 Firefox 浏览器。
当 Microsoft 发布 Windows 95 时,IE 1.0 是作为 Microsoft Plus!包的一部分同时发布的。
尽管这个浏览器与操作系统集成在一起,但大多数人还是坚持使用 Netscape、Lynx 或
Opera。IE 2.0 有了很大起色,增加了对 cookie、安全套接字层(Secure Socket Layer,SSL)
和其他新兴标准的支持。2.0 版还可以用于 Macintosh,从而成为 Microsoft 的第一个跨平台
浏览器。不过,大多数用户还是很执着,仍然坚持使用他们习用的浏览器。
不过到了 1996 年夏天,Microsoft 发布了 IE 3.0 版。几乎一夜之间,人们纷纷拥向 IE。
当时,Netscape 的浏览器是要收费的,Microsoft 则免费提供 IE。关于浏览器领域谁主沉浮,
因特网社区发生了两极分化,很多人担心 Microsoft 会像在桌面领域一样,在 Web 领域也一
统天下。有些人则考虑到安全因素——果然不出所料,发布 3.0 版 9 天之后就报告了第一个
安全问题。但是到 1999 年发布 IE 5 时,它已经成为使用最广的浏览器。
1.3 Web 应用的发展历程
最初,所有 Web 页面都是静态的,用户请求一个资源,服务器再返回这个资源。什么都不
动,什么都不闪。坦率地讲,对于许多 Web 网站来说,这样也是可以的,这些网站的 Web
页面只是电子形式的文本,在一处生成,内容固定,再发布到多处。在浏览器发展的最初阶
段,Web 页面的这种静态性不成问题,科学家只是使用因特网来交换研究论文,大学院校也
只是通过因特网在线发布课程信息。企业界还没有发现这个新“渠道”会提供什么商机。实
际上,以前公司主页显示的信息通常很少,无非是一些联系信息或者只是一些文档。不过没
过多久,Web 用户就开始有新的要求了,希望能得到更动态的网上体验。个人计算机成为企
业不可或缺的资源,而且从个人宿舍到住家办公室开始出现越来越多的计算机。随着
Windows 95 的问世,随着人们已经领教了 Corel WordPerfect 和 Microsoft Excel 丰富的功能,
用户的期望也越来越高。
1.3.1 CGI
要让 Web 更为动态,第一个办法是公共网关接口(Common Gateway Interface,CGI)。
与静态的 Web 获取不同,使用 CGI 可以创建程序,当用户发出请求时就会执行这个程序。
假设要在 Web 网站上显示销售的商品,你可以利用 CGI 脚本来访问商品数据库,并显示结
果。通过使用简单的 HTML 表单和 CGI 脚本,可以创建简单的网上店面,这样别人就可以
通过浏览器来购买商品。编写 CGI 脚本可以用多种语言,从 Perl 到 Visual Basic 都可以,这
使得掌握不同编程语言的人都能编写 CGI 脚本。
不过,要创建动态的 Web 页面,CGI 并不是最安全的方法。如果采用 CGI,将允许别人
在你的系统上执行程序。大多数情况下这可能没有问题,但是倘若某个用户有恶意企图,则
很可能会利用这一点,让系统运行你本来不想运行的程序。尽管存在这个缺陷,到如今 CGI
仍在使用。
1.3.2 applet
很显然,CGI 可以有所改进。1995 年 5 月,Sun 公司的 John Gage 和 Andreessen(目前在
Netscape 通信公司)宣布一种新的编程语言诞生,这就是 Java。Netscape Navigator 为这种新
语言提供了支持,最初是为了支持机顶盒。(你可能原认为最早涉足智能家居的公司是
Microsoft 和 Sony 其实不然。)就像所有革命都机缘巧合一样,Java 和因特网的出现恰到好
处,在适当的时间、适当的地点横空出世,Java 在 Web 上发布仅几个月,就已经有成千上
万的人下载。由于 Netscape 的 Navigator 支持 Java,动态 Web 页面掀开了新的一页:applet
时代到来了。
applet 允许开发人员编写可嵌入在 Web 页面上的小应用程序。只要用户使用支持 Java 的
浏览器,就可以在浏览器的 Java 虚拟机(Java Virtual Machine,JVM)中运行 applet。尽管
applet 可以做很多事情,但它也存在一些限制:通常不允许它读写文件系统,它也不能加载
本地库,而且可能无法启动客户端上的程序。除了这些限制外,applet 是在一个沙箱安全模
型中运行的,这是为了有助于防止用户运行恶意代码。
对许多人来说,最初接触 Java 编程语言就是从 applet 开始的,当时这是创建动态 Web 应
用的一种绝好的方法。applet 允许你在浏览器中创建一个胖客户应用,不过要在平台的安全
限制范围内。当时,在很多领域都广泛使用了 applet,但是,Web 社区并没有完全被 applet“
征服”[2]。胖客户的开发人员都很熟悉一个问题:必须在客户端上部署适当的 Java 版本。
因为 applet 在浏览器的虚拟机中运行,所以开发人员必须确保客户端安装了适当版本的
Java。尽管这个问题也可以解决,但它确实妨碍了 applet 技术的进一步推广。而且如果
applet 写得不好,很可能对客户主机造成影响,这使许多客户对于是否采用基于 applet 的解
决方案犹豫不定。如果你还不太熟悉 applet,请看图 1-1,图中显示了 Sun 公司提供的时钟
applet。
图 1-1 Sun 的时钟 applet
1.3.3 JavaScript
与此同时,Netscape 创建了一种脚本语言,并最终命名为 JavaScript(建立原型时叫做
Mocha,正式发布之前曾经改名为 LiveWire 和 LiveScript,不过最后终于确定为
JavaScript)。设计 JavaScript 是为了让不太熟悉 Java 的 Web 设计人员和程序员能够更轻松
地开发 applet(当然,Microsoft 也推出了与 JavaScript 相对应的脚本语言,称为
VBScript)。Netscape 请 Brendan Eich 来设计和实现这种新语言,他认为市场需要的是一种
动态类型脚本语言。由于缺乏开发工具,缺少有用的错误消息和调试工具,JavaScript 很受
非议,但尽管如此,JavaScript 仍然是一种创建动态 Web 应用的强大方法。
最初,创建 JavaScript 是为了帮助开发人员动态地修改页面上的标记,以便为客户提供
更丰富的体验。人们越来越认识到,页面也可以当作对象,因此文档对象模型(Document
Object Model,DOM)应运而生。刚开始,JavaScript 和 DOM 紧密地交织在一起,但最后它
们还是“分道扬镳”,并各自发展。DOM 是页面的一个完全面向对象的表示,该页面可以
用某种脚本语言(如 JavaScript 或 VBScript)进行修改。
最后,万维网协会(World Wide Web Consortium,W3C)介入,并完成了 DOM 的标准
化,而欧洲计算机制造商协会(ECMA)批准 JavaScript 作为 ECMAScript 规约。根据这些标
准编写的页面和脚本,在遵循相应原则的任何浏览器上都应该有相同的外观和表现。
在最初的几年中,JavaScript 的发展很是坎坷,这是许多因素造成的。首先,浏览器支持
很不一致,即使是今天,同样的脚本在不同浏览器上也可能有不同的表现;其次,客户可以
自由地把 JavaScript 关闭,由于存在一些已知的安全漏洞,往往鼓励用户把 JavaScript 关掉。
由于开发 JavaScript 很有难度(你会用 alert 吗?),许多开发人员退避三舍,有些开发人员
干脆不考虑 JavaScript,认为这是图形设计人员使用的一种“玩具”语言。许多人曾试图使
用、测试和调试复杂的 JavaScript,并为此身心俱疲,所以大多数人在经历了这种痛苦之后,
最终只能满足于用 JavaScript 创建简单的基于表单的应用。
1.3.4 servlet、ASP 和 PHP……哦,太多了!
尽管 applet 是基于 Web 的,但胖客户应用存在的许多问题在 applet 上也有所体现。在大
量使用拨号连接的年代(就算是今天,拨号连接也很普遍),要下载一个复杂 applet 的完整
代码,要花很多时间,用户不能承受。开发人员还要考虑客户端上的 Java 版本,有些虚拟
机还有更多的要求[3]。理想情况下只需提供静态的 Web 页面就够了,毕竟,这正是设计因
特网的本来目的。当然,尽管静态页面是静态的,但是如果能在服务器上动 态 地生成内容,
再把静态的内容返回,这就太好了。
在 Java 问世一年左右,Sun 引入了 servlet。现在 Java 代码不用再像 applet 那样在客户端
浏览器中运行了,它可以在你控制的一个应用服务器上运行。这样,开发人员就能充分利用
现有的业务应用,而且,如果需要升级为最新的 Java 版本,只需要考虑服务器就行了。Java
推崇“一次编写,到处运行”,这一点使得开发人员可以选择最先进的应用服务器和服务器
环境,这也是这种新技术的另一个优点。servlet 还可以取代 CGI 脚本。
servlet 向前迈出了很大一步。servlet 提供了对整个 Java 应用编程接口(API)的完全访
问,而且提供了一个完备的库可以处理 HTTP。不过,servlet 不是十全十美的。使用 servlet
设计界面可能很困难。在典型的 servlet 交互中,先要从用户那里得到一些信息,完成某种业
务逻辑,然后使用一些“打印行”创建 HTML,为用户显示结果。代码清单 1-1 所示的代码
就相当常见。
代码清单 1-1 简单的 servlet 代码
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet SimpleServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World</h1>");
out.println("<p>Imagine if this were more complex.</p>");
out.println("</body>");
out.println("</html>");
out.close();
以上这一小段代码可以生成图 1-2 所示的一个相当简单的 Web 页面。
图 1-2 代码清单 1-1 中简单 servlet 的输出
servlet 不 仅容易出错,很难生成可视化显示,而且还无法让开发者尽展其才。一般地,
编写服务器端代码的人往往是软件开发人员,他们只是对算法和编译器很精通,但不是 能
设计公司精美网站的图形设计人员。业务开发人员不仅要编写业务逻辑,还必须考虑怎么创
建一致的设计。因此,很有必要将表示与业务逻辑分离。因此 JSP(JavaServer Pages)出现
了。
在某种程度上,JSP 是对 Microsoft 的 Active Server Pages (ASP)做出的回应。Microsoft
从 Sun 在 servlet 规约上所犯的错误汲取了教训,并创建了 ASP 来简化动态页面的开发。
Microsoft 增加了非常好的工具支持,并与其 Web 服务器紧密集成。JSP 和 ASP 的设计目的
都是为了将业务处理与页面外观相分离,从这个意义上讲,二者是相似的。虽然存在一些技
术上的差别(Sun 也从 Microsoft 那里学到了教训),但它们有一个最大的共同点,即 Web
设计人员能够专心设计页面外观,而软件开发人员可以专心开发业务逻辑。代码清单 1-2 显
示了一个简单的 JSP。
代码清单 1-2 简单的 JSP
<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Hello World</title>
</head>
<body>
<h1>Hello World</h1>
<p>This code is more familiar for Web developers.</p>
剩余65页未读,继续阅读
Vezn
- 粉丝: 6
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0