URL如何有一个点。最后,例如www.bla.de。


58

我从不认为URL可以以句号结尾(例如,www.google.de.这显然行不通)。

但是,www.youtu.be.运行得很好。他们是如何处理的?


10
尾随。[点]实际上是正确的,但是系统通常在DNS级别为您做出假设。因此,任何.com网站实际上都是google.com。从理论上讲应该可以,但是,可能是浏览器无法预期到这一点,或者无法正确打包请求,或者如果这样做,则您使用的DNS无法正确理解。用户实际使用点是不寻常的,并且默认情况下用户不需要。
closetnoc 2014年

1
www.google.de.对我来说很好。
Stephen Ostermiller

6
这是DNS魔术。.是顶级域名(TLD),那么您就有gTLD:)
CodeAngry 2014年

2
从技术上讲,这不是URL,而是主机名。URL末尾的另一个点(http://example.com/path/file.vs. http://example.com/path/file可以有所作为。例如,如果路径转换为一个文件,并底层操作系统和文件系统区分开file.来自file。我想我不必提,http://example.com/path/file?foo=bar.而且http://example.com/path/file?foo=bar也有很大不同。urls
Hagen von Eitzen 2014年

也有可能未将Web服务器配置为接受以该主机名为目的地的连接。当使用基于名称的虚拟主机的Web服务器处理Host来自传入请求的标头时,不能保证将其视为没有标头.。我刚刚验证了我在Amazon S3上运行的站点。
布兰登2014年

Answers:


66

这里

这是一个鲜为人知的事实,但完全合格的(明确的)DNS域名在末尾加了一个点。运行DNS服务器的人通常都知道这一点(如果您遗漏了结尾的点,则DNS配置不太可能起作用),但公众通常不会。末尾没有点号的域名不完全合格,可能存在歧义。早在1987年,DNS规范RFC 1034中就对此进行了记录:

由于完整的域名以根标签结尾,因此会导致打印形式以点结束。我们使用此属性来区分:

  • 代表完整域名的字符串(通常称为“绝对”)。例如,“ poneria.ISI.EDU”。

  • 一个字符串,代表不完整的域名的起始标签,应由本地软件使用本地域的知识来完成(通常称为“相对”)。例如,在ISI.EDU域中使用的“ poneria”。

此内容的来源将继续对此进行更详细的说明。


7
公众不仅不知道这一点,而且我经常看到电子邮件验证程序明确禁止尾随点。
凯文(Kevin)

3
以及@ Kevin,RFC2822和RFC5322都应禁止尾随期。他们将域部分定义为点原子,点原子是多个原子(一个原子是RFC中给定的字母中的一个或多个字符),以句点分隔。参见RFC5322§3.4.1和§3.2.3
derobert

50

不带尾点的主机名可能是不明确的。尾随点表示主机名是完全限定的,并且可能与本地搜索域无关。

假设您是(假想的)示例大学的学生,该大学属于二级领域example.edu。在大学的校园网络内,您可以省略.example.edu后缀,以使操作更轻松,更轻松。因此,如果您想冲浪www.example.edu并且在校园内,您只需冲浪www就可以了。

现在想象一下大学拥有一个人工智能研究所(“ AI”),其网站托管在上www.ai.example.edu。如果您在校内,则可以上网冲浪,www.ai因为您可以省略.example.edu后缀。

到现在为止还挺好。但是现在您想浏览“离岸信息服务”公司,该公司经营着安圭拉的顶级域名.ai。他们的网站位于http://www.ai/ —但是,如果您在校园里在Web浏览器中输入该URL,则将进入人工智能研究所的网站。

因此,您需要告诉Web浏览器您确实要访问具有顶级域名的网站,.ai而不是访问具有大学子域名的网站.ai.example.edu。这就是点的重要之处,因为http://www.ai./始终可以独立于本地DNS搜索域工作。

与不同域级别之间的点类似,最后一个点表示DNS的根,即,它指出该点之前的单词是顶级域,相对于搜索域而言没有域。


7
并非由浏览器执行此操作,而是DNS解析器。我的计算机上的DNS解析器设置为使用域名作为导致此行为的“搜索域”。它是一个操作系统设置,而不是浏览器设置。
Stephen Ostermiller

3
对于示例大学的学生来说很不幸,添加了尾随。通常会混淆各种虚拟主机配置,并且它将停止使用任何绝对链接(很多站点也使用该链接)。
蓬松的2014年

1
@fluffy:是的,当然,如果Web服务器使用虚拟主机配置,则这些简短的主机名也必须在vhost配置中列出。
Axel Beckert 2014年

1
@kinokijuf:我认为这样的行为是一个错误。浏览器尚未决定我是否要使用DNS解析器的searchdomain功能。
Axel Beckert 2014年

1
@XTaran是的,但是无论www.ai.example.edu网站是否正确配置了其虚拟主机,如果www.ai具有绝对链接http://www.ai/something,并且www.ai服务器的httpd无法理解www.ai.为已配置主机,则DNS解析仍会出错。由于某些原因,您仍然无法浏览http://www.ai./
蓬松的2014年

-5

我认为答案是,大多数Internet工具只是丢弃.或将其视为额外的路径信息

请注意,这是一个非常棘手的错觉。youtu.be不是youtube.be。不确定,但这可能是滥用。


3
youtu.be是youtube的域名。它用于较短的链接,例如在共享或嵌入视频时。
kapex 2014年

@CareyB的注释:没关系,因为“ youtu.be”是youtube上最近不再为youtube视频引入的URL缩短器;只是弹出视频的ID(例如,对于有关FQDN命名的视频[hmm,某人似乎不了解CC-BY-SA]),其中提到根域是一个空字符串,因此在末尾留下一个点,位于youtube.com/watch?v=qHAb3Foa1Nw上,您可以使用youtu.be/qHAb3Foa1Nw
shelleybutterfly 2014年

12
-1; 错误,并且youtu.be/youtube.be的区别与该问题完全无关。
蓬松的2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.