AJAX 技术简介
我们知道,Internet经历了翻天覆地的重大变革。最早只有基于文本的简单浏览器,仅供科学家之间交流研究心得。如今,Internet已不可同日而语,它已经成为贸易和信息的中心。从最初诞生之日起,我们看到过许多新方法和新技术陆续登场,从开始的图形化浏览器到自由播(podcast,也称播客、随身播)等等。到了今天,Internet已经成为大量应用的首选平台(还记得你最后一次和旅行社直接打交道是什么时候吗?是不是早已经开始通过 Internet完成这些事务了?)。不过,尽管Internet提供了很大的便利,但很少有人会把Web应用与桌面应用混淆不清。这一章将对Web应用的发展历程做一个简要的概述。回顾完过去之后,我们再来看看将来:Ajax。
1.1 Web应用的发展简史
刚开始时一切都那么简单。在美国,最初为了连接很少的几个顶尖研究机构,设计了最早的“Internet”,以便共同开展科学研究。不论是图书馆员、原子能物理学家,还是计算机科学家,都必须学习一个相当复杂的系统,1962年,麻省理工大学(MIT)的J.C.R. Licklider最早提出他的“Galactic Network”(超大网络)思想时,甚至还没有Firefox和Internet Explorer之类的概念。
Licklider后来继续在国防部高级研究计划局(Defense Advanced Research Projects Agency,DARPA)从事计算机研究,在那里他积极地宣扬网络化思想的重要性。与此同时,MIT的Leonard Kleinrock和Lawrence G. Roberts正在开展分组交换理论的研究,这是网络计算机的一个核心概念。在Thomas Merrill的帮助之下,Roberts于1965年进一步创建了第一个广域网,他通过一个拨号连接使麻萨诸塞州的一台TX-2连上了加利福尼亚州的一台Q-32。
1966年底,Roberts把他的实验结果提交给DARPA,在这里他设计了高级研究项目管理网络(Advanced Research Projects Administration Network,ARPANET)的计划。此时,Kleinrock正在加州大学的洛杉矶网络测量中心(Los Angeles Network Measurement Center),这里被选作ARPANET的第一个节点,正是在这里,1969年Bolt Beranek和Newman(BBN)成功地安装了第一个分组交换器,称为接口消息处理器(Interface Message Processors,IMP)。斯坦福研究中心选为第二个节点,1969年10月,实现了第一个主机到主机的消息交换。此后不久,又将加州大学的圣巴巴拉分部和犹他州大学增加为节点,这就是我们现在所称Internet的前身。
这个时期微机刚开始出现:数字设备公司(Digital Equipment Corporation)创建了PDP-1,其后PDP-8、PDP-11和VAX-11/780取得了巨大成功。计算机能力得到了极大提高,而且价格也越来越为人所接受,不像最初只有极少的几台大型机时那样贵得惊人。计算机已经走入平民大众;不过,可以看到,个人计算机还在进一步发展。
最初,研究人员认为传输控制协议(Transmission Control Protocol,TCP)只适用于大型系统,因为TCP就是为大型系统设计的。不过,麻省理工大学David Clark的研究小组发现,工作站之间可以大范围互联。Clark的研究,再加上20世纪80年代和90年代个人计算机领域的爆炸式发展,迅速推动了当今世界的前进。
20世纪80年代出现了几个大变化。随着主机数量从为数不多的几个发展到成千上万,需要为主机指定不同的名字,这样人们就不用费劲地去记它们的数字地址。这个变化,以及主机数量的飞速增长,催生了域名系统(Domain Name System ,DNS)的问世。另外,ARPANET从使用网络控制协议(Network Control Protocol,NCP)转换为使用传输控制协议/ Internet协议(Transmission Control Protocol/Internet Protocol,TCP/IP),这是军方使用的标准协议。到了20世纪80年代中期,Internet已经建成为一个连接不同研究人员的平台,而且其他网络也开始出现: 美国国家航空和宇宙航行局(National Aeronautics and Space Administration)创建了SPAN。美国能源部(U.S. Department of Energy)建立了MFENet来研究磁力熔合能源,另外在国家科学基金(National Science Foundation)的资助下,还创建了CSNET来开展计算机科学研究。
1989年,欧洲粒子物理研究所(European Council for Nuclear Research,CERN)的Tim Berners-Lee提出了一个很有意思的概念。他认为,与其简单地引用其他人的工作,为什么不干脆链接呢?读一篇文章时,科学家可以打开所引用的文章。超文本(hypertext)当时相当流行,并利用了他先前在文档和文本处理方面的研究成果。Berners-Lee发明了标准通用标记语言(Standard Generalized Markup Language,SGML)的一个子集,称为超文本标记语言(HyperText Markup Language,HTML)。HTML的妙处在于,它能把应该如何展现文本与具体如何实现显示相分离。Berners-Lee不仅创建一个称为超文本传输协议(HyperText Transfer Protocol,HTTP)的简单协议,还发明了第一个Web浏览器,叫做WorldWideWeb。
1.2 浏览器历史
提到Web浏览器,大多数人都会想到无处不在的Microsoft Internet Explorer,直到最近像Firefox、Safari和Opera之类的浏览器日益兴起,这种情况才稍有改观。尽管许多新手可能认为 Internet Explorer是市场上的第一个浏览器,但事实并非如此。实际上,第一个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月,Illinois–Urbana-Champaign大学超计算应用国家中心的Marc Andreessen和Eric Bina为Unix发布了Mosaic。几个月之后,Aleks Totic为Macintosh发布了Mosaic的一个版本,这使得Mosaic成为第一个跨平台浏览器,它很快得到普及,并成为最流行的Web浏览器。这个技术卖给了Spyglass,后来又归入Microsoft的门下,并用在Internet Explorer中。
1993年,塂萨斯大学的开发人员编写了一个基于文本的浏览器,叫做Lynx,它成为了字符终端的标准。1994年,挪威奥斯陆的一个小组开发了 Opera,1996年这个浏览器得到了广泛使用。1994年12月,Netscape发布了Mozilla的1.0 版,第一个盈利性质的浏览器诞生。2002年又发布了一个开源的版本,这发展为后来流行的Firefox浏览器,于2004年11月发布。
Microsoft发布Windows 95时,把Internet Explorer 1.0作为Microsoft Plus!包的一部分同时发布。尽管这个浏览器与操作系统集成在一起,但大多数人还是坚持使用Netscape、Lynx或Opera。IE 2.0有了很大起色,增加了对cookie、安全套接字层(Secure Socket Layer,SSL)和其他新兴标准的支持。这个第二版还可以用于Macintosh,使之成为Microsoft的第一个跨平台浏览器。不过,大多数用户还是很执着,仍然使用他们用惯了的浏览器。
不过到了1996年夏天,Microsoft发布了3.0版本。几乎一夜之间,人们纷纷拥向Internet Explorer。当然,Netscape的浏览器还是要收费,Microsoft仍然免费提供Internet Explorer。关于浏览器领域谁主沉浮,Internet群体发生了两极分化,很多人担心Microsoft会像在桌面领域一样,在Web领域也一统天下。有些人则考虑到安全问题,而且不出所料,发布3.0版9天之后,就报告了第一个安全问题。到1999年发布Internet Explorer 5时,它已经成为使用最广的浏览器。