美文网首页
URLs和URIs的不同(翻译)

URLs和URIs的不同(翻译)

作者: 哈士奇_银桑 | 来源:发表于2016-03-20 23:39 被阅读68次

本文翻译自The Difference Between URLs and URIs,因水平有限,建议看原文


【注:更多入门教程,看这里

对于很多技术都有争论,其中web地址是被讨论最多的问题之一。通常表现在,某人提到输入某个“URL”到浏览器中,这时就会有人矫正道:

" 实际上,那个叫做 URI,不叫URL...

作为回应,这个人会想着是否接受他人的异议,还是撸袖子,光膀子来一架。希望能通过本篇文章使人理清其中的细微差异。

URI,URL,URN

对于这三种名词的解释,最好的方式是查看相关内容的出处文献,所以这里摘录了Tim Berners-Lee, et.al. in RFC 3986: Uniform Resource Identifier (URI): Generic Syntax:

(统一资源标示符)Uniform Resource Identifier(URI)是一个标示抽象或具体资源的字符串。

URI可以被视为定位符,名称或两者兼备。统一资源定位符(“Uniform Resource Locator” URL)是一种URI,它标识一个互联网资源,并指定了获取该资源的方法(例如:它的网络“位置”)。

Wikipedia简单的描述如下:

URI可被视为定位符(URL),名称(URN)或两者兼备。统一资源名(URN)如同一个人的名称,而统一资源定位符(URL)代表一个人的住址。换言之,URN定义某事物的身份,而URL提供查找该事物的方法。

那么我们得到以下一些信息:

  1. 首先(就像图上显示的那样)URL是一种URI
    。那么,以后如果有人告诉你URL不是URI,你就可以高傲的回答他,You are wrong。但是这不意味这所有的URIs都是URLs。就像所有的蝴蝶都会飞,但你不能说所有会飞的都是蝴蝶一样。
  2. 一个URI变成URL的方式是包含“获取方法”,或者“网络位置”, 例如,http:// 或者 ftp://
  3. URN是一个唯一的标示,唯一的名字。

接下来让我们看下RFC的一些URIs的示例:

这些都是URI,其中一些是URL。什么样的是URL?那些指明了获取方式的。

总结

我们就试着回答下文章开头的讨论:

哪一个名词更适合表述web地址呢?

基于作者对于相关内容和RFC的阅读理解,URI更适合描述web地址。
为什么?
因为我们通常使用URI的形式不等同于URL。举个例子,你被告知你需要的资源在 files.hp.com 。这是一个URI,不是URL---因为系统可以通过多种方式获取该资源。
你可以想像,通过 http://files.hp.com 获取的内容一定不同于 ftp://files.hp.com 。这种类似的事情只会越来越普遍,想想庞大的Google提供的多样的服务吧。
所以,如果你使用URI你永远在技术上是正确的,但URL可能不会。最后,有明显的议论“URL”或成为过时的。所以URI在准确度上是相当安全的选择。
尽管如此,Dafydd Stuttard持有不同的观点,这些术语含义非常相似,任何想要区分对待的都有些卖弄学问的嫌疑。在The Web Application Hacker’s Handbook 书中,它描述到:

对于一个URL正确的术语是URI(或统一资源标识符),但这术语只会被那些卖弄的人用在形式化的文章中。

确实如此。
[ NOTE: If someone actually gives a full URL then the more correct technical term is still URL, but I think I know what he meant. ]

最后的话

If you don’t mind being “that guy”, URI is probably the more accurate term to use. But if you are in the linguist / “use what’s understood” camp, feel free to go with URL.

Notes and references

  1. RFC 2396.
  2. Wikipedia | URI.
  3. An explanation of the differences from damnhandy.com.
  4. Another interesting point is the fact that Google Chrome is now purposely dropping the protocol from the display within the browser–which is in effect visually turning URLs into URIs.

翻译参考

维基百科---统一资源标志符

相关文章

  • URLs和URIs的不同(翻译)

    本文翻译自The Difference Between URLs and URIs,因水平有限,建议看原文 对于很...

  • URIs, URLs, and URNs

    这两天在写代码的时候,由于涉及到资源的位置,因此,需要在Java Bean中定义一些字段,用来表示资源的位置,比如...

  • js 编码与解码

    一、定义和用法 encodeURI() 函数可把字符串作为 URI 进行编码。 语法 encodeURI(URIs...

  • 关于翻译,你需要知道这几点

    ①翻译分为文学翻译和实用类翻译。 ②翻译新手可结合自己的专业背景,选择一个翻译主攻方向。 ③不同文本需要不同的翻译...

  • Django2.0-views与urls映射关系

    views与urls之间的映射关系是通过urls模块下的 ‘urlpattrns’列表控制的。在2.0之前和之后的...

  • 7. 分页

    a. 根据页码进行分页 urls.py views.py b. 位置和个数进行分页 urls.py views.p...

  • Django开发问题汇总

    GSSException 问题解决方式 初步怀疑原因是已安装的包和paramiko需要的包版本不一致 URIs n...

  • Requests模块三分钟掌握用法!

    Feature Support: International Domains and URLs —— 国际化域名和...

  • URL的反向解析

    步骤: 1:在项目的urls.py中加入namespace2:在app是urls.py中加入app_name和na...

  • 多进程爬虫MySQL表单设计

    先来一个例子: TABLES['urls'] = ("CREATE TABLE urls ("" index ...

网友评论

      本文标题:URLs和URIs的不同(翻译)

      本文链接:https://www.haomeiwen.com/subject/qjkklttx.html