1.2 Web基础
1.2.1 Web文档
Web文档与传统文档不大相同,它是通过Web服务器传递给客户的,它具有超链接(Hyperlink/Anchor)和多媒体(multimedia)功能,这正是Web文档的本质特征,也是Web的魅力之所在。
超文本(Hypertext)是一种非线性的文本。第一个超文本系统是在1960年,由Douglas Engelbart实现的。Web可以说是超文本技术在Internet上的应用。
Web文档的内容允许多种媒体共存,既可以是传统上的文本、图片,也可以是非文本对象,如声音、图像等多种数据类型。
超链接(Hyperlink)与多媒体技术(multimedia)的结合,称为超媒体技术(Hypermedia),该技术是1987年由美国BROWN大学将超文本技术应用到Apple的Hypercards系统中而产生的,实际上是超链接技术与多媒体技术的结合。链接不仅局限于传统的文本,还可以包括图像、声音等。
通常Web文档可以分为以下三类。
(1)静态文档(static document)
它是一个存储在Web服务器上的静态文件。静态文档由作者在写作时决定文档内容,它的内容一旦建立,便不会发生变化。因此,对静态文档的每次访问都得到相同结果。
(2)动态文档(dynamic document)
它在浏览器访问Web服务器时创建,创建动态文档,并返回给浏览器,作为应答。动态文档的内容是变化的,每次访问都要创建新的文档。
(3)活动文档(active document)
它不完全由服务器产生,一个活动文档包括一个计算和显示的程序。当浏览器访问活动文档时,服务器返回一个浏览器可以局部执行的程序副本,活动文档可以和用户交互执行,并不断改变显示。只要用户程序保持运行,该文档可以不断变化。
1.2.2 IP
IP是TCP/IP体系结构中非常重要的协议,其英文缩写为Internet Protocol,意思是“网络之间互连的协议”,也就是为计算机网络相互连接进行通信而设计的协议。IP协议在TCP/IP模型中所处的位置如图1-1所示。
图1-1 TCP/IP模型的网络协议
在因特网中,IP协议是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。
通俗地讲,为了访问因特网中的计算机,必须有一种寻址方法来定位,IP地址就是因特网上的主机和路由器的一种标识方法。每个因特网上的主机和路由器都有一个IP地址,它包括网络号和主机号,这一编码组合是唯一的。
现在电信网正在与IP网走向融合,以IP为基础的新技术是热门的技术,如用IP网络传送话音的技术(即VoIP)就很热门,其他如IP over ATM、IP over SDH、IP over WDM、等等,都是IP技术的研究重点。
1.2.3 域名系统
域名系统(Domain Name System)一般简称为DNS。域名和IP地址一一对应,语法上,每台计算机的域名都是由一系列字母和数字构成的。例如:提供WWW服务的服务器域名为www.moe.edu.cn。其中,cn代表中国、edu代表教育部门、moe代表教育部、www代表WWW服务,如图1-2所示。
图1-2 Internet域名空间
DNS是一个分布式的数据库,它一般存在于DNS服务器之上。它是为了定义Internet上的主机而提供的一个层次性的命名系统。利用DNS能进行域名的解析。
域名的解析过程如下:
(1)DNS客户向本地的DNS服务器发出一个查询请求。
(2)如果该DNS本身具有客户想要查询的数据,则直接返回给客户,如果没有,则该服务器和其他命名服务器联系,从其他服务器上获取信息,然后返回给用户。
各种域名后缀都是有意义的,表1-1中列举了一些常用域名后缀的含义。
表1-1 DNS后缀的含义
1.2.4 基本的Web技术
Web是基于客户机/服务器的一种体系结构。通常人们将数据等大量信息存储在共享的服务器上,用客户机与之相连,以便享用服务器的高性能。在这种客户机/服务器的模式中,典型的通信过程为:客户机向服务器发送请求,要求执行某些任务,而服务器则执行此项任务,并向客户机返回响应。
那么,Internet上有成千上万的服务器,每台服务器上又有众多的各类信息,客户端如何能获得正确的请求信息呢?Web涉及到的第1种技术是标识服务器及服务器上的信息的URL技术。
浏览器事先并不知道它从服务器方检索的信息的内容和格式,但如何能使浏览器按设计者的初衷正确地显示出信息呢?唯一可行的方法是在信息的原始数据上增加一些格式信息,这就是Web涉及到的第2种技术——HTML技术。
通常需要的信息不仅仅局限于文本,还有图像、视频和声音等数据类型,这就借用了第3种技术——MIME标准技术,即服务器根据数据文件的扩展名,生成相应的MIME类型返回给浏览器,浏览器根据MIME类型,再现不同类型的数据。
为了服务器与浏览器能进行通信,还需要第4种技术——HTTP技术。
当然,Web还要考虑到其他技术,例如:用户与服务器的交互的CGI(Common Gateway Interface)技术等。下面介绍上述4种Web基本技术。
1. URL
URL(Uniform Resource Locator,统一资源定位符)即通过定义资源位置的抽象标识来定位网络资源。资源被定位后,便可对其进行各种操作,例如:访问、更新、替换、查找属性等。
总体来说,URL可按下列格式书写:
<scheme>:<scheme-specific-part>
其中,“<scheme>”指所用的URL方案名,“<scheme-specific-part>”意义的解释与所用方案有关。
方案名由字符组成,可包括字母(a~z)、数字(0~9)、加号(+)、点号(.)和下画线(-),字母大小写是不分的。
对于Internet,<scheme>指的是Internet协议名,主要包括:http、ftp、gopher、mailto、new、nntp、telnet、wais、file等,以后还会不断扩充。
HTTP URL方案用于表示可通过HTTP协议进行访问的Internet资源。HTTP URL的格式如下:
http://<host>:<port>/<path>?<searchpart>
其中,“<host>”和“<port>”按标准格式,“:<port>”如果省略,默认端口值为80。“<path>”为HTTP选择器,而“<searchpart>”为查询字符串,它们都是可选的,如果这两项不存在,则主机或端口后的“/”也应该省略。例如:http://www.edu.cn:80/index.html地址中的“http”是协议,“www.edu.cn”是主机名,“80”是端口号,“index.html”是要访问的文件名。
2. HTTP
在Web基本技术中,其核心应是HTTP(Hypertext Transfer Protocol,超文本传送协议),它设计了一套相当简单的规则,用来支持超媒体系统在网络上的分布,它的出现使Web成为可能,如果要真正理解Web,那么理解HTTP就是其基础。
HTTP采用的是客户机/服务器(C/S)结构,定义了客户机/服务器之间进行“对话”的简单的请求-应答规则,如图1-3所示。客户端的请求程序与运行在服务器端的接收程序建立连接。客户端发送请求给服务器,HTTP规则定义了如何正确解析请求信息,服务器用应答信息回复该请求,应答信息中包含了客户端所希望得到的信息,HTTP规则当然也定义了如何正确解析应答信息,但HTTP规则并没有定义网络如何建立连接、管理及信息如何在网络上发送,这些事情交给底层协议TCP/IP来完成。这也就是经常说,“Web是站在巨人的肩膀上”,它的真实含义是“HTTP是建立在TCP/IP之上的”,HTTP属于应用层的协议,是TCP/IP的一个应用,从TCP/IP来看,Web(HTTP)和TELNET、FTP、GOPHER、WAIS等没有什么区别。
图1-3 HTTP结构
HTTP规则定义了客户和服务器之间请求与应答的格式。
HTTP请求由以下4个部分组成。
(1)方法:指定对所请求对象的操作。
(2)URL:标识所请求的对象。
(3)协议版本号。
(4)(可选)其他信息,用来补充或修改请求。
例:现有如下HTTP请求,其工作原理如图1-4所示。
图1-4 http请求示例
GET /k12education/math.html HTTP/1.0 User-agent: NCSA Mosaic If-Modified-Since: SAT, 05 JAN 2001 11:01:31 AM Accept: text/plain Accept: text/html Accept: image/gif Accept: application/postscripts
上述代码段的第1行是方法、URL和HTTP版本号;第2行标识浏览器的类型是NCSA MOSAIC;第3行指示接收指定日期和时间以后做过修改的对象;下面第4~7行指示浏览器可以接收的信息类型。
上面的例子中用到了HTTP请求的GET方法,下面作进一步介绍。
HTTP请求的方法如下。
● GET:返回所指对象。
● HEAD:返回关于对象的信息,例如它已存的时间等。
● POST:将某种信息送给服务器/对象。
● PUT:用一个新复制对象替换。
● DELETE:删除对象。
其中比较常用的请求方法是GET和POST方法。
HTTP回答由以下4个部分组成。
● 状态行 版本号、状态码、解释。
● 关于返回内容的描述MIME类型、长度等。
● 空行。
● 返回内容。
例:现有如下HTTP应答,其工作原理图1-5所示。
图1-5 http应答示例
HTTP/1.0 Status 200 Document follows Server: NCSA/1.4 Date: Tue, 4 Jul, 1996, 19 17:05 GMT Content-type: text/html Content-length: 5280 Last-modified: Wed, 1 Jan 1996 01:00:02 GMT (blank line) The contents of document requested
上述代码段的第1行显示了HTTP版本号,请求是成功的,并将返回信息;第2行标识服务器软件是NCSA/1.4;第3行指示了请求的日期和时间;第4行指示文档类型是text/html;第5行指示文档长度是5280B;第6行指示文档的最后修改时间;第7行是空行;第8行是请求的文档。
从HTTP的应答信息可以看出,实际上Web服务器(软件)“很简单”,它体现在以下四个方面。
● 它不懂HTML(浏览器必须懂)。
● 它对Web文件的内容一概不关心。
● 它也不知道是否有别的文件指向它所管辖的文件。
● 它也不知道自己所给出的文件MIME类型正确与否。
HTTP按照客户/服务器的模式工作,那么分析一下浏览器与服务器的工作过程。
(1)浏览器用URL查询DNS,DNS返回IP地址。
(2)浏览器用这个IP地址建立一次TCP/IP连接。
(3)浏览器通过该连接向服务器发送一个HTTP请求。
(4)基于该请求的内容,服务器找到相应的文件,并根据文件的扩展名,形成一个MIME类型的HTTP回答消息,发送验证给浏览器,服务器关闭本次连接。
(5)根据消息头,浏览器按某种方式显示该文件内容,如果本文有<… SRC =URL>之类,浏览器将随时发送新的请求(可能对不同的服务器),以获得有关内容。
在这个工作过程中,步骤(2)~(4)是HTTP的一次操作,有时也称为HTTP的一次事务(transaction)。
需要注意的是,对于页面中的每幅图像(包括图标、图形、照片等),浏览器都必须与相关服务器建立一次TCP连接,获取图像,然后释放连接。
如上所述,Web文档的重要特征之一是文档内容不仅可以包括纯文本ASCII数据,还可以包含图像、声音、视频等多媒体数据,可是有没有考虑这样一个事实,所有类型的文档的存储和传送都是以二进制数据形式进行的。在Web服务器程序看来,所有类型的文档没有什么区别,可是浏览器却能够将Web文档正确地显示成如文档编写者所设计的样子,包括各种媒体的展现,而实际上,浏览器事先对文档的内容一无所知,可能想到的解决方案是在服务器与浏览器之间建立一种约定,通知浏览器传递给用户的是什么类型的文档。具体的实现机制之一就是让文档的编写者在文档头部给出描述了。
3. MIME
实际上,Web的设计比上述机制稍微前进了一步。让Web服务器根据文件的扩展名来给出文档类型的宏观描述。这种描述借用了MIME标准。浏览器通过HTTP响应头标中的MIME类型,选择媒体的展现方式。
MIME(Multipurpose Internet Mail Extension,多功能Internet邮件扩充服务)是一个开放的多语言、多媒体电子邮件标准,为了满足用户在不同的软件平台和硬件平台的信息交换而制订。它规定了不同数据类型的名字。Web仅用到它的一个子集。MIME的一个重要特点是对媒体类型进行了全面定义。
MIME的头标格式为type/subtype。其中,type表示数据类型,其类型主要有:Text、Image、Audio、Video、Application、Multipart和Message。subtype则指定所用格式的特定信息。子类型前标有“x-”时表示试验子类型,尚未进入标准注册。
4. HTML
HTML(Hypertext Markup Language,超文本标记语言)是WWW的描述语言。设计HTML语言的目的是为了能把存放在一台计算机中的文本或图形与另一台计算机中的文本或图形方便地联系在一起,形成有机的整体。用户不用考虑具体信息是在当前计算机上还是在网络的其他电脑上,而只需使用鼠标在某一文档中点取一个图标,Internet就会马上转到与此图标相关的内容上去,而这些信息可能存放在网络的另一台计算机中。HTML文本是由HTML命令组成的描述性文本,HTML命令可以说明文字、图形、动画、声音、表格和链接等。
HTML是一种语言,它令所有上网者都可以在因特网上展示信息(例如,科学研究信息)。用户所看到的网页,是浏览器对HTML进行解释的结果。要查看一个网页的HTML代码,只需在浏览器菜单栏上选择“查看”|“源文件”选项即可,如图1-6所示。
图1-6 查看网页上的HTML源文件
当用户想把网页制作成某种样式时,需要使用一种编码向网络浏览器来进行解释,这种编码就被称为HTML代码。
一个HTML文件是一页文字信息,就像一封电子邮件或一个Word字处理文档,而且实际上用户完全可以使用Word字处理软件来编写一个HTML网页,也可以通过其他字处理软件编写文本文件,网络浏览器只能处理文本信息。
一个HTML文件中包含了所有将显示在网页上的文字信息,其中也包括对浏览器的一些指示,如哪些文字应放置在何处,显示模式是什么样的等。如果用户还有一些图片、动画、声音或是任何其他形式的资源,HTML文件也会告诉浏览器到哪里去查找这些资源,以及这些资源将放置在网页的什么位置。HTML文件通过标记(tag)来实现这一功能。