看懂URL
作者: 姜学哲(netsail0@163.net)
参考资料:参考大全 HTML(第三版)清华大学出版社
[美]Thomas A. Powell 著 杨正华 葛菱南 李金波 陈汝祥 译
图们江计算机程序编制小组(chulsoft.xiloo.com)版权所有,转载请说明出处。
-----------------------------------------------------------------
突然想起了"帝国时代"。当年第一次玩她的时候,游戏中壮丽的画面给我巨大的震撼力。我深深地被她迷住了。我仔细地观察游戏中的每一个细节。"星际争霸"是我后来喜欢上的,之前我把所有的精力都放在了"帝国时代"上面。在我玩过的所有游戏中"帝国时代"有着不可替代的地位。那是唯一给过我震撼的游戏。之后我再也没有过那种感受。我特地从韩国买来了正版的"帝国时代"。写这遍文章之前我为了找回当年的感觉,又玩了一次"帝国时代"。话题扯远了。
能看懂上面的URL吗?我想很多人都看不懂,我也是。上面的URL是我在GOOGLE用关键字"cs+flash+十佳"搜索后的结果。
URL的标准全称是Uniform resource locator。我的英语水平不行,所以只能查金山词霸了。Uniform"统一的",resource"资源",locator"定位器"。基本的URL结构如下所示:
协议://网址/目录/文件名/
上面的是微软公司的URL。其中的www是"机器名"。microsoft是"域名",com该组织的类型。
com----------->商业实体或个人
net----------->网络或者网络提供商
org----------->非盈利性的组织
edu----------->大学
gov----------->政府机构
mil----------->军事机构
美国以外的域有些复杂。一个包括国家代码的FQDN(完全合格的域名)如下:
协议://机器名.域名.域类型.国家代码/
cn代表的是中国,此外,jp代表的是日本,kr代表韩国, ca代表加拿大, mx代表墨西哥。
在Internet上服务器的真正地址是IP地址,而不是符号地址。IP地址由四个数字组成。每个数从0到255之间,数字之间用点号分隔。但是利用符号地址我们可以很方便地访问Internet服务器。毕竟一大串数字是不利于记忆的。例如
可能对应于
在使用URL定位服务器之前,符号名必须先被解析为IP地址。有专门的服务商提供这种服务。称为域名服务(DNS:Domain Name Service)。用户在浏览器地址栏输入的符号地址会自动被DNS服务器解析为IP地址。
对于网络操作而言,域名格式和域名查找服务是很关键的。如果没有DNS服务器,就不可能访问Web服务器。想获得更多关于机器名和域名的信息,请访问如下网站(如果您的英语水平还可以的话):
域名不分大小写。
协议是计算机所进行的结构化的通信,从而提供特定资源的服务。例如,支持Web的协议称为超文本传输协议(http)。当用户点击Web文档的一个超链接时,浏览器就使用HTTP协议与Web服务器建立连接,然后获得要求的文档。
HTTP代表Hypertext Transfer Protocol。
除了HTTP,还有其它一些协议也是很重要的。
File------------------------------------->使得可以通过超链接访问本地文件系统的文件。
文件传输协议(FTP:file transfer protocol)-->使得可以通过超链接访问远程系统上的文件。
Gopher----------------------------------->使得可以通过超链接访问Gopher服务器。
简单邮件传输协议(SMTP:Simple Message Transfer Protocol)--->Internet上使用的邮件协议。
邮局协议(POP:Post Office Protocol)---->用于接收邮件的协议。
网络新闻传输协议(NNTP:Network News Transfer Protocol)----->使得可以通过超链接访问USENET新闻文章。
News------------------------------------->使得可以通过超链接访问USENET新闻组。
telnet----------------------------------->用于远程联接服务的标准协议。
FTP和telnet都是需要进行用户认证的协议。认证服务保证,只能由授权用户进行访问。所以该协议需要以用户名和密码作为参数。用户名和密码必须放在服务器之前,形式为:
ftp://username:password@ftp.downmovie.com
密码是可先的,可以不在URL中给出,那么形式就变成了:
ftp://username@ftp.downmovie.com
虽然很少见,但是有时候也需要在URL中指定端口号,每一个协议都有一个默认的端口号,例如,HTTP协议的默认端口号是80。服务器管理员可以重新配置服务器,使它能够在非默认的端口上处理相应协议的请求。最好不要改变默认的端口号,因为这可能使用户迷惑。
URL无法显示某些特殊符号,这个时候就要使用编码了。编码的格式为:一个百分号,后面跟对应字符的ASCII码值。例如," @ "的编码值是"%40"。
在一些系统中使用目录时,有些简单的记法可用。例如,基于UNIX的网络服务器可能有许多目录,每一个目录都归特定的用户所有。这个时候并不需要写出用户根目录的完全路径。用户目录可以简写为" ~ "(波浪线)。后接用户帐号,然后是一个斜杠。后面的目录和文件名都是相对于用户主目录而言的。
HTTP URL也可以访问并且执行服务器程序。服务器端的程序通常被称为公共网关接口(CGI Common Gateway Interface)程序。它使用了一个接口标准。该标准描述了程序如何接收和发送数据。公式如下:
协议://网址/目录/文件?参数
这时候又回到了文章开始处看见的这个URL。
在问号前面的search就是文件。
q是第一个参数,它等于"cs+flash+%E5%8D%81%E4%BD%B3"。
第二个参数是ie,即:
&ie=UTF-8
第三个参数是oe,
&oe=UTF-8
第五个参数:
&hl=zh-CN
第六个参数:
&btnG=Google%E6%90%9C%E7%B4%A2
最后一个参数:
&lr=
" & "号表示跟在后面的是一个参数。现在,大家可以看懂上面的复杂URL吗?