2007年8月15日星期三

像一个Googler那样谈论URL的每个部分

URL(Uniform Resource Locator)是每个互联网用户无时无刻不在接触着的东西,不过实际上大多数互联网用户不需要理解URL是由哪些部分组成的也可以很轻松地使用URL。但如果你希望对URL有更深入的了解,不妨看看Matt Cutts是如何对URL的每个部分进行详细解析的。通过本文,你将了解到在Google,人们通常是如何指出URL的不同部分。以下是一个有效的,包含了许多元件的示例URL:

http://video.google.co.uk:80/videoplay?docid=-7246927612831078230&hl=en#00h02m30s

在这个示例URL中,包含了以下这些元件:

  • URL的协议是http,其它的协议包括https、ftp等。
  • 主机或主机名是video.google.co.uk。
  • 子域名域名是video。
  • 主域名是google.co.uk。
  • TLD(顶级域名)是uk。uk域名也称为ccTLD(国家代码顶级域名)。对于google.com而言,TLD(顶级域名)是com。
  • SLD(二级域名)是co.uk。
  • 监听端口是80,这也是Web服务的默认端口。但这不是唯一可用的端口,其它端口(如:8000)同样可被用于Web服务的监听。当端口是80时,大多数人都忽略输入端口信息。
  • 路径是/videoplay。路径通常指向一个文件或Web服务器上的特定区域,如:/directory/file.html。
  • 这个示例URL包含了参数。一个参数的名称是"docid",这个参数的数值是7246927612831078230。URLs可以包含多个参数,参数以问号(?)标记开始,以ampersand(&)标记分隔。
  • 看到URL中的"#00h02m30s"部分了吗?这被称为一个片段或一个命名锚。通常片段被使用于指向内部的Web文档。在这个例子中,该命名锚表示“跳过视频的前2分30秒”。我认为目前针对Google的规范化URL处理应该将URL中的任何片段移除。

静态URL和动态URL有什么不同?在技术上我们认为静态URL可以返回一个不需要Web服务器进行运算处理的文档。动态URL在返回文档前则需要Web服务器进行一些运算。

一些人将静态URL和动态URL之间的区别简化为一个简单的问题:“URL中是否包含问号标记?”。如果URL中包含问号标记,它通常被认为是动态URL。如果URL中不包含问号标记,这往往是一个静态URL。但这并不是一个硬性规定。比如像http://news.google.com/这样的URL可能需要Web服务器进行一些运算。但大多数人只是以URL是否包含问号,来作为判断URL是静态URL还是动态URL的参考标准。

没有评论: