《HTTP权威指南》URLs and Resources

URLs(Uniform resource locators)是互联网资源的标准化名称

像上一篇博客“《HTTP权威指南》Note1-Overview of HTTP”中提到的,URLs只是URI的一个子集,另一个子集是URN,URL强调资源的位置,URN抢到资源的名称,当某个资源在互联网的位置发生改变,旧的URL将不能再访问该资源,而URN则依然可以。由于URN还未普及,我们一般默认URL就是URI。

URL有统一的格式:scheme://server location/path

URL被应用于除了HTTP之外的其他协议,比如FTP,电子邮件等等。URL是众多网络协议的访问点(原文是access point,翻译有点怪)。

URL Syntax

URL的语法格式(详细)如下

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

一般没有哪个URL同时拥有以上9个部分,一般用于scheme,host,path. 接下来讲解以详细语法格式中的9个组成部分。

Schemes: What Protocol to Use

scheme一般表示访问某个资源是通过哪种协议。它不区分大小写,用冒号:隔开后面的字段,所以 HTTP://等同于http://

Hosts and Ports

host和port指定你得通过互联网中哪台主机的哪个端口获取某个资源。

Usernames and Passwords

用户名和密码,一般运用于FTP协议,举几个例子,如下:

ftp://ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous@ftp.prep.ai.mit.edu/pub/gnu
ftp://anonymous:my_passwd@ftp.prep.ai.mit.edu/pub/gnu
http://joe:joespasswd@www.joes-hardware.com/sales_info.txt

第一个URL中,没有账户名也没有密码,则默认插入“anonymous”作为账号,而密码,也会插入默认值,不同浏览器的默认密码不同,IE是“IEUser”,Netscape Navigator 是 “mozilla”。 第二个URL中,有账号,则只需要自动插入默认密码。 第三个和第四个URL中,拥有账号也有密码。

通常账号密码通过“@”字符与后续的URL组成部分分隔开,而账号密码之间则用冒号”:”分开。

Paths

path是指你需要到某个主机的哪个位置获取资源,

path中的每一级,都可以有自己的参数(Each path segment can have its own params component)

Parameters

还记得参数Parameters放在哪个位置吗?再看看URL的完整格式,它与path之间用分号“;”隔开。

<scheme>://<user>:<password>@<host>:<port>/<path>;<params>?<query>#<frag>

参数都以键值对的方式出现,如下例子

ftp://prep.ai.mit.edu/pub/gnu;type=d

向前面提到的,path的各个级别都可以有自己的参数,如下

http://www.joes-hardware.com/hammers;sale=false/index.html;graphics=true

路径在hammers级别有参数sale,值为false,路径在index.html有参数graphics,其值为true

Query Strings

Query Strings的例子如下,不大理解,这个和get方法后面的参数不是一样吗

http://www.joes-hardware.com/inventory-check.cgi?item=12731

Fragments

这个概念是指从服务器获取某个对象,显示在浏览器之后,直接滚动显示到某个片段。

注意,该语法不会使服务器只返回某个对象的片段,服务器仍然返回整个对象,只是浏览器默认滚动到某个片段的位置。

如下语句

http://www.joes-hardware.com/tools.html#drills

该网页www.joes-hardware.com/tools.html的源代码为:

<HTML>

<HEAD><TITLE>Joe's Tools</TITLE></HEAD>

<BODY>

<H1>Tools Page</H1>

<H2>Hammers</H2>

<P>Joe's Hardware Online has the largest selection of 
<A HREF="./hammers.html">hammers</A> on the earth.</P>

<H2><A NAME=drills></A>Drills</H2>

<P>Joe's Hardware has a complete line of cordless and corded drills,
as well as the latest in plutonium-powered atomic drills, for those
big around the house jobs.</P> ...

</BODY>

</HTML>