IsaacZ 发表于 2006-4-10 02:10:13

网页是如何显示在浏览器上的

作者:周勇生    教程来源:CPCW
  随着时代的进步,INTERNET正以空前的发展普及速度深入到千家万户,成千上万的公司与个人在网络上建立主页和站点向世界展示自己。公司通过网络发布产品信息,提供服务、寻求商业契机,而个人可以通过网页展示自己的才华、爱好,与他人交流。于是设计和创建网页就成了我们必备的素质。在设计和创建网页之前,不知大家有没有考虑这样一个问题,那就是设计和创建好的网页是如何显示在浏览器上的?知道了网页是如何工作的,我们就能做到有的放矢,从而能使我们的网页美观地显示在用户的面前。下面笔者就以几种不同格式的网址为例,来说明网页是如何具体工作的。
一、标准的网址:域名+目录+文件名称
  首先我们来看看最标准的网址的书写格式,例如盐城市科委网络中心的某一网页的网址为:<a href="http://www.dianbo.net/music/ZhongCheng.htm" target="_blank" >http://www.dianbo.net/music/ZhongCheng.htm</A>,,其中<a href="http://www.dianbo.net/" target="_blank" >www.dianbo.net</A>为计算机域名,music为该计算机根目录下的一目录,ZhongCheng.htm为music目录下的一个具体的文件。当我们在浏览器的地址栏里输入以上这个网址时,要不了多长时间,计算机就会自动把我们需要的网页的信息传输到用户的面前,其具体的通信过程为: 1 浏览器首先会通过<a href="http://www.chinayancheng.com/" target="_blank" >WWW.CHINAYANCHENG.COM</A>这样的域名来寻找存放网页的计算机服务器,如果找到,浏览器就会与该服务器联系,建立信息传输通道,以便信息能够正确传输。 <BR>2 信息通道建立好后,接着浏览器就会向服务器要求下载music目录下的一个叫ZhongCheng.htm文件。 3 如果文件下载成功,浏览器便会解释执行ZhongCheng.htm文件中的HTML记,然后将执行的结果显示在用户面前。 4 在解释阅读扩展名为HTML文件的过程中,浏览器会检查扩展名为HTML的网页中是否含有图象的标记,如果有,再根据图象标记下载图象文件,然后将他们一起显示在浏览器窗口上。   以上的<a href="http://www.dianbo.net/music/ZhongCheng.htm" target="_blank" >http://www.dianbo.net/music/ZhongCheng.htm</A>是最标准的网址书写格式,这种标准的网址格式使得浏览器与WEB服务器之间只有文件传输的关系。
二、只有“域名”的网址
  除了上面的标准的网址书写格式,我们见得最多的网址格式恐怕就要数<a href="http://www.dianbo.net/" target="_blank" >http://www.dianbo.net</A>这种类型的网址了。其实<a href="http://www.dianbo.net/" target="_blank" >http://www.dianbo.net</A>这个网址等于<a href="http://www.dianbo.net/" target="_blank" >http://www.dianbo.net/</A>,它所代表的含义是域名“www.dianbo.net”+目录“/”。当我们把上述的网址输进浏览器地址框执行时,浏览器首先与一个名为<a href="http://www.dianbo.net/" target="_blank" >www.dianbo.net</A>的计算机服务器取得联系并建立通信信道。然后浏览器就向服务器发出要下载该网站网页的请求,由于浏览器端并没有指明要下载文件的具体文件名,服务器就会默认为用户需要下载的文件为服务器根目录下的一个名叫index.html的文件,因此服务器一旦收到浏览器的下载请求,就会自动把根目录下的index.html文件传回到浏览器端;最后浏览器启动解释执行功能来解释运行index.html文件,并把最后的执行的结果显示在用户的面前。所以当我们在浏览器中输入只有域名的网址时,浏览器与WEB服务器之间的传输关系同样是文件传输关系。
三、只有“域名+目录”的网址
  下面我们来比较一下<a href="http://www.dianbo.net/news1" target="_blank" >http://www.dianbo.net/news1</A>和<a href="http://www.dianbo.net/news2" target="_blank" >http://www.dianbo.net/news2</A>这两个网址。从表面上来看,这两个网址的结构都是一样的,都是由域名和目录组成。现在我们首先在浏览器地址框里输入第一个网址,然后按回车键让浏览器与服务器进行联系,一旦连接成功,浏览器自动向服务器寻求该服务器根目录下的一个名叫news1的子目录,然后服务器默认地把news1目录下的index.html文件传回到浏览器端,最后解释执行index.html文件;但当我们输入第二个网址时,服务器却返回的是music/news2目录下的文件列表,这与FTP有点类似。第一个网址之所以传回网页而不是目录的文件列表,是因为我们事先在music/news1放了一个名叫index.html的文件,而这个文件被服务器当作该目录下的默认文件,因此当浏览器向服务器查询music/new1目录时,服务器就会把index.html文件传给用户,所以浏览器端就会显示网页文件。反之,对于music/news2目录,我们事先没有在该目录下放置默认文件index.html,所以服务器就会把该目录下的所有文件都列出来。还有一种结果可能是服务器传回的是提示信息,告诉用户不允许访问该目录下的文件列表,这是因为我们在服务器端进行了一些设置,设置要求必须明确指定要下载的具体文件名,意思是如果浏览器在服务器指定的目录下没有找到要找的文件,不允许不该目录下的所有文件及子目录下载下来。
四、含有程序的网址
  让我们一起来看看下面的一个网址,例如<a href="http://www.dianbo.net/test.asp" target="_blank" >http://www.dianbo.net/test.asp</A>,这个网址的结尾并不是以*.html为扩展名的文件,而是一个以*.asp为扩展名的文件,在浏览器地址框中输入这个网址后,同样地浏览器首先会与<a href="http://www.chianyancheng.net/" target="_blank" >www.chianyancheng.net</A>这个WEB服务器进行联系,然后在该服务器根目录下找到test.asp文件,由于这个文件是一个可执行程序,浏览器不能对该脚本程序进行解释,所以test.asp只能先在服务器上被解释运行,然后服务器会把运行的结果传回给浏览器,如在结果中遇到HTML标记,浏览器就启动解释程序,然后按HTML标记的要求把网页的内容显示在用户的面前。
五、程序中带有参数的网址
  我们有可能见到这样的网址,比如<a href="http://www.dianbo.net/test.asp?NAME=ZYS&amp;AGE=21" target="_blank" >http://www.dianbo.net/test.asp?NAME=ZYS&amp;AGE=21</A>,这个网址同样也含有ASP程序,比较有意思的是该网址后面还附带了NAME以及AGES这两个参数;所以当我们要下载该网址的内容时,同样先在服务器端启动执行test.asp文件,在执行文件的过程中,test.asp需要用到上面两个参数,程序执行完后,其他的过程与上面的基本相同。
  我们之所以要比较以上几种网址,主要的目的是想说明WEB服务器会根据浏览器所要求的目录名称或文件名称而采取不同的处理方法:
<OL>
[*]如果浏览器要下载的文件是一般的html文件,那么WEB服务器会直接把文件传回给浏览器。
[*]如果浏览器要查询的是目录,则WEBS服务器会判断这个目录是否含有默认文件,如果有,那将默认文件传给浏览器,如果没有,则将目录的文件列表传给浏览器,如果服务器端不允许浏览器访问文件目录,那么浏览器端将会显示“不允许访问文件列表”这样的提示信息。
[*]如果浏览器要下载的是扩展名为ASP或CGI的脚本程序,那么WEB服务器会自动启动解释程序,然后把程序执行的结果传回给浏览器。</OL>
页: [1]
查看完整版本: 网页是如何显示在浏览器上的