网页运作的基本常识 许忠英 2001年 1期 很多人天天上网,浏览网页信息,有些人通过一些所见即所得网页制作软件的辅助,会写网页,但大都对网页的组成和运作却似懂非懂,但是笔者觉得还是应当对万维网(WWW) 的基本运作原理有所了解。对于网络一族来说,你应该很有自信的告诉别人万维网是怎样工作的。   #1 1.网页浏览流程    当我们在自己的计算机的浏览器中输入一个网址(URL)或按下一个超链接(Hyperlink)时,浏览器会送出一个要求到网络上,要网址中所指定的文件。这个要求会在互联网上传送,根据网址所指定的位置,找到存有这份文件的 WWW服务器。WWW服务器是一台放有网页文件的计算机,它里面有一个WWW Server的程序,这个程序是专门处理网页资料和要求用的。 当这台服务器(WWW Server程序)接收到要求,它便会检查自己的计算机中是否有这份文件,如果有的话,服务器就会将文件送出,这个文件就是HTML文件。HTML文件会被送上互联网,最后传回到我们的计算机中。    浏览器接收到HTML文件,便会开始解读HTML,将最后的结果呈现在屏幕上让我们看到。    HTML文件只是一种纯文字的文件,并没有包含影像、动画或其它任何东西。当浏览器在解读HTML时,发现里面有需要显示影像、动画的地方,就会重复第一个步骤再送出要求,去把要显示的影像、动画给下载回来。如此一直重复着,直到所有需要的东西都下载完毕为止。这样就完成了一个浏览网页的动作。   #1 2. Client-Server 的网络结构    在网页浏览过程之中,我们自己的计算机称做客户端(Client),而WWW服务器称做服务器端(Server),这在网络中称为主从式(Client-Server)的结构。主从式结构的特色是:只有当客户端送出要求的时候,服务器端才会传送信息给客户端,如果没有任何要求,服务器端和客户端之间是完全没有联机的,服务器不会主动送信息给你。这BBS(Telnet模式)或网络联机游戏不同,双方时随时都保持着连系。    主从式的好处是可以大幅减少网络的负荷量,因为没事的时候并不会联机。但主从式没有办法主动地从服务器端传送资料给客户端,只有等待客户有需求的时候才能传送客户所需的资料。   #1 3.互动程序的浏览过程    前面介绍的是一个最基本的浏览网页动作,如果网页中有包含JavaScript、Java Applet,甚至还牵扯到CGI程序或ASP,那又是怎样一个情况呢?    JavaScript:我们通常提到的JavaScript都是指客户端的JavaScript,它是写在HTML文件中的一些脚本程序代码,会随着HTML文件一起下载到自己的计算机中。浏览器在解读HTML时,会一并解读JavaScript,如果有该执行的地方就会去执行,或是等到按下鼠标才会去执行。所以JavaScript是在客户端靠浏览器来执行的,常见的文字条闪动、弹出窗口、弹出对话框,或是DHTML动态效果,都是JavaScript的应用。    Java Applet:Java Applet也是在客户端执行的程序,不过不象JavaScript的程序代码是写在 HTML中,Java Applet反而比较象CGI是一个单独的程序。Java Applet类似影像一般被插入到网页中,当浏览器在解读HTML时,发现某个地方需要Java Applet,便会再送出要求把Java Applet给下载回来,然后立刻开始执行。    CGI:CGI是WWW服务器呼叫外部程序来执行的渠道,所以CGI一定是在服务器上面执行。举个例来说:当我们在搜寻引擎中输入一个关键词并按下送出,这个要求就会被传送到服务器上。服务器接受到网址和需要被搜寻的关键词,便会呼叫搜寻的CGI程序,对本身的数据库来进行搜寻。CGI程序处理完成以后,把结果传回给WWW服务器,服务器再传送到我们的计算机中。比起一般的浏览过程,在服务器端多绕了一小圈的动作,而这一小圈就是呼叫CGI程序处理资料。    CGI和Java Applet都是单独的一个程序,只不过一个在服务器端执行,一个在客户端执行。想想看,假设所有的程序都在服务器端执行,一个人浏览一次就执行一次程序,100个人浏览就执行100次,万一10000个人同时在浏览呢? 那服务器岂不是要哇哇叫,甚至就罢工当机了,就算不当机,速度也会变得非常慢。如果我们能够把某些程序下载到自己的计算机中执行,因为这台计算机只有我一个人在用,所以速度一定不会太慢,服务器也只要负责传送文件就好,大大减轻了服务器的负担,这就是Java Applet的好处。    不过不是所有的程序都适合下载回来使用的,例如需要搜寻数据库的程序,总不可能把整个数据库下载回来搜寻吧! 那文件不知道有多大。还不如在服务器上执行,把结果传回来就好。    ASP/PHP:ASP和PHP是在HTML中加上VB Script或JavaScript的程序代码,服务器在送出网页之前会先执行一遍这些程序代码,一般的HTML文件是直接送出。如果程序中需要从数据库中抓资料,就会先去抓资料,最后再将执行的结果传送给浏览者。所以它相当于取代了CGI程序的功能,也是在服务器端执行的程序。