一个 URL、一个 URI 和一个 URN 的区别是什么?


当前回答

URL - 统一资源探测器

包含关于如何从其位置获取资源的信息,例如:

URN - 统一资源名称

URC - 统一资源引用


经常提出的问题

我不知道,但现代的网页浏览器正在实施数据URI系统。

URL 和 URI 之间的区别与它是否有查询参数有什么关系?

URL 和 URI 之间的区别与哪些字符有任何关系吗?

没有. URL 被定义为一个严格的 URI 子组. 如果一个字符允许一个字符在一个 URL 但不是一个 URI,有一个错误在一个字符. 特征走到很好的细节,关于哪些字符被允许在哪些部分的 URL 和 URI. 某些字符只能允许在 URL 的某些部分,但字符本身不是 URL 和 URI 的区别。

一个URI可以是URL和URN吗?


此分類上一篇

其他回答

我一直在想同样的事情,我发现了这个: http://docs.kohanaphp.com/helpers/url。

您可以看到一个清晰的例子,使用 url::current() 方法. 如果您有此 URL: http://example.com/kohana/index.php/welcome/home.html?query=string 然后使用 url:current() 给您一个 URI,根据文档,是:欢迎/home

原来,URI计划分为URL(地址)和URN(名称),但然后有一个URL和URI之间很少的差异,而HTTP URI被用作名称空间,尽管它们实际上没有找到任何资源。

URI => http://en.wikipedia.org/wiki/Uniform_Resource_Identifier

URL 是 URI 的子组(也包含 URN)。

基本上,一个 URI 是一个通用识别器,在那里一个 URL 指定一个位置,而一个 URN 指定一个名字。

s3://www-example-com/index.html [图 1]

http://www.example.com/index.html [图 2]

在亚马逊的S3-US-West-2数据中心。

图 1 是 URI 图 1 是 URN 图 2 是 URI 图 2 是 URL 图 1 的 URL 是 http://www-example-com.s3-website-us-west-2.amazonaws.com/ 也是 http://www-example-com.s3.amazonaws.com/index.html 但不是 http://www-example-com.s3.amazonaws.com/ (没有数据中心和没有文件名是亚马逊 S3 太一般的)

虽然 URI 和 URL 术语是严格定义的,但许多人使用这些术语的其他事物,而不是它们的定义。

如果从 Apache 服务器要求 http://example.com/foo,您将设置以下环境变量:

REDIRECT_URL: /foo REQUEST_URI: /foo

使用 mod_rewrite 启用,您还将有以下变量:

REDIRECT_SCRIPT_URL: /foo REDIRECT_SCRIPT_URI: http://example.com/foo SCRIPT_URL: /foo SCRIPT_URI: http://example.com/foo

这可能是某些混乱的原因。