Web的成长史

来源:互联网 发布:python爬虫教程知乎 编辑:程序博客网 时间:2024/06/10 23:25

Web的起 

200px-First_Web_Server.jpg

最早的网络构想可以追溯到遥远的1980年蒂姆·伯纳斯-李构建的ENQUIRE项目。这是一个类似维基百科的超文本在线编辑数据库。尽管这与我们现在使用的万维网大不相同,但是它们有许多相同的核心思想,甚至还包括一些伯纳斯-李的万维网之后的下一个项目语义网中的构想。

  1989年3月,伯纳斯-李撰写了《关于信息化管理的建议》一文,文中提及 ENQUIRE 并且描述了一个更加精巧的管理模型。[3]1990年11月12日他和罗伯特·卡里奥(Robert Cailliau)合作提出了一个更加正式的关于万维网的建议。在1990年11月13日他在一台NeXT工作站上写了第一个网页以实现他文中的想法.

  在那年的圣诞假期,伯纳斯-李制作了要一个网络工作所必须的所有工具:第一个万维网浏览器(同时也是编辑器)和第一个网页服务器。

  1991年8月6日,他在alt.hypertext新闻组上贴了万维网项目简介的文章。这一天也标志着因特网上万维网公共服务的首次亮相。

  万维网中至关重要的概念超文本起源于1960年代的几个从前的项目。譬如泰德·尼尔森(Ted Nelson)的仙那都项目(Project Xanadu)和道格拉斯·英格巴特(Douglas Engelbart)的NLS。而这两个项目的灵感都是来源于万尼瓦尔·布什在其1945年的论文《和我们想得一样》中为微缩胶片设计的“记忆延伸”(memex)系统。

  蒂姆·伯纳斯-李的另一个才华横溢的突破是将超文本嫁接到因特网上。在他的书《编织网络》中,他解释说他曾一再向这两种技术的使用者们建议它们的结合是可行的,但是却没有任何人响应他的建议,他最后只好自己解决了这个计划。他发明了一个全球网络资源唯一认证的系统:统一资源标识符。

  万维网和其他超文本系统有很多不同之处:

  * 万维网上需要单项连接而不是双向连接,这使得任何人可以在资源拥有者不作任何行动情况下链接该资源。和早期的网络系统相比,这一点对于减少实现网络服务器和网络浏览器的困难至关重要,但它的副作用是产生了坏链的慢性问题。

  * 万维网不像某些应用软件如HyperCard,它不是私有的,这使得服务器和客户端能够独立地发展和扩展,而不受许可限制。

  1993年4月30日,欧洲核子研究组织宣布万维网对任何人免费开放,并不收取任何费用。两个月之后Gopher宣布不再免费,造成大量用户从Gopher转向万维网。

  万维网联盟(World Wide Web Consortium,简称W3C),又称W3C理事会。1994年10月在麻省理工学院计算机科学实验室成立。建立者是万维网的发明者蒂姆·伯纳斯-李。

Web的特点

  一、Web是图形化的和易于导航的(navigate)

  Web 非常流行的一个很重要的原因就在于它可以在一页上同时显示色彩丰富的图形和文本的性能。在Web之前Internet上的信息只有文本形式。Web可以提供将图形、音频、视频信息集合于一体的特性。同时,Web是非常易于导航的,只需要从一个连接跳到另一个连接,就可以在各页各站点之间进行浏览了。

  二、Web与平台无关

  无论你的系统平台是什么,你都可以通过Internet访问WWW。浏览WWW对你的系统平台没有什么限制。无论从Windows平台、UNIX平台、Macintosh还是别的什么平台我们都可以访问WWW。对WWW的访问是通过一种叫做浏览器(browser)的软件实现的。如Netscape 的Navigator、NCSA的Mosaic、Microsoft的Explorer等。

  三、Web是分布式的

  大量的图形音频视频信息会占用相当大的磁盘空间,我们甚至无法预知信息的多少。对于Web没有必要把所有信息都放在一起,信息可以放在不同的站点上。只需要在浏览器中指明这个站点就可以了。使在物理上并不一定在一个站点的信息在逻辑上一体化,从用户来看这些信息是一体的。

  四、Web 是动态

  最后,由于各Web站点的信息包含站点本身的信息,信息的提供者可以经常对站上的信息进行更新。如某个协议的发展状况,公司的广告等等。一般各信息站点都尽量保证信息的时间性。所以Web站点上的信息是动态的。经常更新的。这一点是由信息的提供者保证的。

  五、Web是交互

  Web的交互性首先表现在它的超连接上,用户的浏览顺序和所到站点完全由他自己决定。另外通过FORM的形式可以从服务器方获得动态的信息。用户通过填写FORM可以向服务器提交请求,服务器可以根据用户的请求返回相应信息。

工作原理

  当你想进入万维网上一个网页, 或者其他网络资源的时候,通常你要首先在你的浏览器上键入你想访问网页的统一资源定位符(Uniform Resource Locator),或者通过超链接方式链接到那个网页或网络资源。这之后的工作首先是URL的服务器名部分,被名为域名系统的分布于全球的因特网数据库解析,并根据解析结果决定进入哪一个IP地址(IP address)。

  接下来的步骤是为所要访问的网页,向在那个IP地址工作的服务器发送一个HTTP请求。在通常情况下,HTML文本、图片和构成该网页的一切其他文件很快会被逐一请求并发送回用户。

  网络浏览器接下来的工作是把HTML、CSS和其他接受到的文件所描述的内容,加上图像、链接和其他必须的资源,显示给用户。这些就构成了你所看到的“网页”。

  大多数的网页自身包含有超链接指向其他相关网页,可能还有下载、源文献、定义和其他网络资源。像这样通过超链接,把有用的相关资源组织在一起的集合,就形成了一个所谓的信息的“网”。这个网在因特网上被方便使用,就构成了最早在1990年代初蒂姆·伯纳斯-李所说的万维网

      web本意是蜘蛛网和网的意思。现广泛译作网络、互联网等技术领域。表现为三种形式,即超文本(hypertext)、超媒体(hypermedia)、超文本传输协议(HTTP)等。

网页  网页,是网站中的一「页」,通常是HTML格式(文件扩展名为.html或.htm或.asp或.aspx或.php或.jsp等)。网页通常用图像档来提供图画。网页要透过网页浏览器来阅读。

  网页是构成网站的基本元素,是承载各种网站应用的平台。通俗的说,您的网站就是由网页组成的。如果您只有域名和虚拟主机而没有制作任何网页的话,您的客户仍旧无法访问您的网站。

  所谓网站(Website),就是指在网际网路(因特网)上,根据一定的规则,使用HTML等工具制作的用於展示特定内容的相关网页的集合。简单地说,网站是一种通讯工具,就像布告栏一样,人们可以通过网站来发布自己想要公开的资讯(信息),或者利用网站来提供相关的网路服务(网络服务)。人们可以通过网页浏览器来访问网站,获取自己需要的资讯(信息)或者享受网路服务

  什么是网页?

  现在在你眼前,出现在显示器上的这个 “ 东西 ” ,就是一个网页。网页实际是一个文件,他存放在世界某个角落的的某一台计算机中,而这台计算机必须是与互联网相连的。网页经由网址( URL )来识别与存取,当我们在浏览器输入网址后,经过一段复杂而又快速的程序,网页文件会被传送到你的计算机,然后再通过浏览器解释网页的内容,再展示到你的眼前。

  构成网页的元素:

  文字与图片是构成一个网页的两个最基本的元素。你可以简单的理解为:文字,就是网页的内容,图片,就是网页的美观。除此之外,网页的元素还包括动画、音乐、程序等等。

  在网页上点击鼠标右键,选择菜单中的 “ 查看源文件 ” ,就可以通过记事本看到网页的实际内容。可以看到,网页实际上只是一个纯文本文件,它通过各式各样的标记对页面上的文字、图片、表格、声音等元素进行描述(例如字体、颜色、大小),而浏览器则对这些标记进行解释并生成页面,于是就得到你现在所看到的画面。 为什么在源文件看不到任何图片? 网页文件中存放的只是图片的链接位置,而图片文件与网页文件是互相独立存放的,甚至可以不在同一台计算机上。

  网页的类型.

  通常我们看到的网页,都是以 htm 或 html 后缀结尾的文件,俗称 HTML文件。不同的后缀,分别代表不同类型的网页文件,例如以 CGI 、 ASP 、 PHP 、 JSP 甚至其他更多。

  网页的分类

  网页有多种分类,我们笼统意义上的分类是动态和静态的页面,原则上讲静态页面多通过网站设计软件来进行重新设计和更改,相对的比较滞后,当然现在有网站管理系统,也可以生成静态页面~我们称这种静态页面为伪静态。动态页面通过网页脚本与语言自动处理自动更新的页面,比方说贴吧,他就是通过网站服务器运行程序,自动处理信息,按照流程更新网页。

  关于网页:

  当你每次上网时,都会在历史纪录里留下纪录,保存在C盘主要文件的一个文档里,删除时只要右键删除就可以了。

三个名词

  一、超文本(hypertext)

  一种全局性的信息结构,它将文档中的不同部分通过关键字建立链接,使信息得以用交互方式搜索。它是超级文本的简称。

  二、超媒体(hypermedia)

  超媒体是超文本(hypertext)和多媒体在信息浏览环境下的结合。它是超级媒体的简称。用户不仅能从一个文本跳到另一个文本,而且可以激活一段声音,显示一个图形,甚至可以播放一段动画。

  Internet采用超文本和超媒体的信息组织方式,将信息的链接扩展到整个Internet上。Web就是一种超文本信息系统,Web的一个主要的概念就是超文本连接,它使得文本不再象一本书一样是固定的线性的。而是可以从一个位置跳到另外的位置。你可以从中获取更多的信息。可以转到别的主题上。想要了解某一个主题的内容只要在这个主题上点一下,就可以跳转到包含这一主题的文档上。正是这种多连接性我们才把它称为Web。

  三、超文本传输协议(HTTP)

  Hypertext Transfer Protocol超文本在互联网上的传输协议

Web各版本之间区别

  Web 1.0: 任何人可以交易

  Web 1.0 是关于来自一些主要的公司,如:eBay, Amazon.com, and Google 的杀手级的应用程序的出现。我们一直认为它们仅仅是网站,但它们实际上是一些令人惊讶的应用程序:功能丰富,容易上手,扩展性强,这些特性以前很少被普通消费者看到过。交易,不仅仅是针对货物的,还有知识的,变的普遍和即时。效率,透明,这个曾经是全球金融市场的领域,现在被个人消费者和商业者占领。 Web 1.0在今天依旧是很大的推动力并且在将来持续很长时间。

  Web 2.0: 任何人可以参与

  Web 2.0是关于互连网上的下一代应用程序,特点是用户产生内容,合作化,社区化。任何人可以参与到内容的创建中。在YouTube上上传一个视频,在 Flickr上上传参加聚会的照片,或者在Blogspot上写自己的政治见解,所有这些都不需要专门技术,仅仅需要连接上互联网。参与改变了我们对于内容的理解:内容不是固定在发布商那里,它是活动在任何地方的。Google的AdSense带来了一个即时的商业模式,尤其对于博客作者,并且视频共享网站已经重写了流行文化和内容过滤的规则。

  当你围绕Web1.0或者2.0创业的时候,建设一个安全的,可扩展的数据中心并不是一项容易的工作。对于进入把软件当成服务的行业,大量的时间和资本依 旧是进入的一个门槛。而且,传统的客户端-服务器的软件开发依然复杂。并且创建一个成功的应用程序还需要辛勤的部署和维护。

  Web 3.0: 任何人可以创新

  Web 3.0通过改变传统软件行业的技术和经济基础来改变现有的一切。新的Web 3.0强调的是任何人,在任何地点都可以创新。代码编写,协作,调试,测试,部署,运行都在云计算上完成。当创新从时间和资本的约束中解脱出来,它就可以欣欣向荣。

  对于企业来说,Web 3.0意味着SaaS程序可以比传统的C-S软件更快,更高效的开发,部署,升级。

  对于开发者来说,Web 3.0意味着他们需要创建一个理想的应用程序东西需要的仅仅是一个想法,一个浏览器。因为世界上的每一个开发人员都可以访问强大的云计算,Web 3.0是全球经济的推动力。

  对于独立软件开发商,Web 3.0意味着他们可以花费更多的时间专注提供给客户的核心价值上,而不是支持它的基础架构。因为代码生长在云计算上,全球的精英可以为它做贡献。因为它运行在云计算上,全球的市场都可以把它作为服务来订阅。

 

传统的Web数据库系统体系结构  传统的Web数据库系统一般实现Web数据库系统的连接和应用可采取两种方法,一种是在Web服务器端提供中间件来连接Web服务器和数据库服务器,另一种是把应用程序下载到客户端并在客户端直接访问数据库。中间件负责管理Web服务器和数据库服务器之间的通信并提供应用程序服务,它能够直接调用外部程序或脚本代码来访问数据库,因此可以提供与数据库相关的动态HTML页面,或执行用户查询,并将查询结果格式化成HTML页面。通过Web服务器返回给Web浏览器。最基本的中间件技术有通过网关接口CGI和应用程序接口API两种。

  (一)、基于通用网关接口CGI

  CGI是WWW服务器运行时外部程序的规范,按照CGI编写的程序可以扩展服务器的功能,完成服务器本身不能完成的工作,外部程序执行时间可以生成HTML文档,并将文档返回WWW服务器。CGI应用程序能够与浏览器进行交互作用,还可以通过数据库的API与数据库服务器等外部数据源进行通信,如一个CGI程序可以从数据库服务器中获取数据,然后格式化为HTML文档后发送给浏览器,也可以将从浏览器获得的数据放到数据库中。几乎使用的服务器软件都支持CGI,开发人员可以使用任何一种WWW服务器内置语言编写CGI,其中包括流行的C、C 、VB和Delphi等。

  从体系结构上来看,用户通过Web浏览器输入查询信息,浏览器通过HTTP协议向Web服务器发出带有查询信息的请求,Web服务器按照CGI协议激活外部CGI程序,由该程序向DBMS发出SQL请求并将结果转化为HTML后返回给Web服务器。再由Web服务器返回给Web浏览器。这种结构体现了客户/服务器方式的三层模型,其中Web服务器和CGI程序实际起到了HTML和SQL转换的网关的作用。CGI的典型操作过程是:分析CGI数据;打开与DBMS的连接;发送SQL请求并得到结果;将结果转化为HTML;关闭DBMS的连接;将HTML结果返回给Web服务器。

  基于Web的数据库访问利用已有的信息资源和服务器。其访问频率大,尤其是热点数据。但其主要的缺点是:①客户端与后端数据库服务器通信必须通过Web服务器,且Web服务器要进行数据与HTML文档的互相转换,当多个用户同时发出请求时,必然在Web服务器形成信息和发布瓶颈。②CGI应用程序每次运行都需打开和关闭数据库连接,效率低,操作费时;③CGI应用程序不能由多个客户机请求共享,即使新请求到来时CGI程序正在运行,也会启动另一个CGI应用程序,随着并行请求的数量增加,服务器上将生成越来越多的进程。为每个请求都生成进程既费时又需要大量内存,影响了资源的使用效率,导致性能降低并增加等待时间;④由于SQL与HTML差异很大,CGI程序中的转换代码编写繁琐,维护困难;⑤安全性差,缺少用户访问控制,对数据库难以设置安全访问权限;⑥HTTP协议是无状态且没有常连接的协议,DBMS事务的提交与否无法得到验证,不能构造Web上的OLTP应用。

  (二)、基于服务器扩展的API

  为了克服CGI的局限性,出现的另一种中间件解决方案是基于服务器扩展API的结构。与CGI相比,API应用程序与Web服务器结合得更加紧密,占用的系统资源也少得多,而运行效率却大大提高,同时还提供更好的保护和安全性。

  服务器API一般作为一个DLL提供,是驻留在WWW服务器中的程序代码,其扩展WWW服务器的功能与CGI相同。WWW开发人员不仅可以API解决CGI可以解决的一切问题,而且能够进一步解决基于不同WWW应用程序的特殊请求。各种API与其相应的WWW服务器紧密结合,其初始开发目标服务器的运行性能进一步发掘、提高。用API开发的程序比用CGI开发的程序在性能上提高了很多,但开发API程序比开发CGI程序要复杂得多。API应用程序需要一些编程方面的专门知识,如多线程、进程同步、直接协议编程以及错误处理等。目前主要的WWW API有Microsoft公司的ISAPI、Netscape公司的NSAPI和OReily公司的WSAPI等。使用ISPAI开发的程序性能要优于用CGI开发的程序,这主要是因为ISAPI应用程序是一些与WWW服务器软件处于同一地址空间的DLL,因此所有的HTTP服务器进程能够直接利用各种资源这显然比调用不在同一地址空间的CGI程序语句要占用更少的系统时间。而NSAPI同ISAPI一样,给WWW开发人员定制了Netscape WWW服务器基本服务的功能。开发人员利用NSAPI可以开发与WWW服务器的接口,以及与数据库服务器等外部资源的接口。

  虽然基于服务器扩展API的结构可以方便、灵活地实现各种功能,连接所有支持32位ODBC的数据库系统,但这种结构的缺陷也是明显的:①各种API之间兼容性很差,缺乏统一的标准来管理这些接口; ②开发API应用程序也要比开发CGI应用复杂得多; ③这些API只能工作在专用Web服务器和操作系统上。

  (三)、基于JDBC的Web数据库技术

  Java的推出,使WWW页面有了活力和动感。Internet用户可以从WWW服务器上下载Java小程序到本地浏览器运行。这些下载的小程序就像本地程序一样,可独立地访问本地和其他服务器资源。而最初的Java语言并没有数据库访问的功能,随着应用的深入,要求Java提供数据库访问功能的呼声越来越高。为了防止出现对Java在数据库访问方面各不相同的扩展,JavaSoft公司指定了JDBC,作为Java语言的数据库访问API。

  采用JDBC技术,在Java Applet中访问数据库的优点在于:直接访问数据库,不再需要Web数据库的介入,从而避开了CGI方法的一些局限性;用户访问控制可以由数据库服务器本地的安全机制来解决,提高了安全性;JDBC是支持基本SQL功能的一个通用低层的应用程序接口,在不同的数据库功能的层次上提供了一个统一的用户界面,为跨平台跨数据库系统进行直接的Web访问提供了方案。从而克服了API方法一些缺陷;同时,可以方便地实现与用户地交互,提供丰富的图形功能和声音、视频等多媒体信息功能。

  JDBC是用于执行SQL语句的Java应用程序接口API,由Java语言编写的类和接口组成。Java是一种面向对象、多线程与平台无关的编程语言,具有极强的可移植性、安全性和强健性。JDBC是一种规范,能为开发者提供标准的数据库访问类和接口,能够方便地向任何关系数据库发送SQL语句,同时JDBC是一个支持基本SQL功能的低层应用程序接口,但实际上也支持高层的数据库访问工具及API。所有这些工作都建立在X/Open SQL CLI基础上。JDBC的主要任务是定义一个自然的Java接口来与X/Open CLI中定义的抽象层和概念连接。JDBC的两种主要接口分别面向应用程序的开发人员的JDBC API和面向驱动程序低层的JDBC Driver API。JDBC完成的工作是:建立与数据库的连接;发送SQL语句;返回数据结果给Web浏览器。

  基于JDBC的Web数据库结构其缺陷在于:只能进行简单的数据库查询等操作,还不能进行OLTP;安全性、缓冲机制和连接管理仍不完善;SUN承诺的完全跨平台跨数据库系统的功能和标准远未实现。