【发布时间】:2016-08-24 05:34:18
【问题描述】:
我遇到了一些在.com 之后呈现带有或不带有点/句点的 URL,而有些则没有。
例如:
www.example.com.
如果在.com之后添加点/句点,URL应该正常呈现还是应该转到404页面?
【问题讨论】:
-
我相信你的问题是answered here。
我遇到了一些在.com 之后呈现带有或不带有点/句点的 URL,而有些则没有。
例如:
www.example.com.
如果在.com之后添加点/句点,URL应该正常呈现还是应该转到404页面?
【问题讨论】:
主机名末尾的句点表示解析器应该不尝试使用其搜索域来解析主机名,如果给定的名称无法解析。也就是说,如果解析器的搜索域为“lan”,如果您尝试查找“web”,它将首先尝试解析“web”,然后解析“web.lan”,但使用“web”。它只会尝试“web”。
对于服务器,它永远不会看到 URL,只有主机名和路径(作为单独的实体),如果 Host 标头包含句点,它没有理由抱怨(尽管也没有理由让客户包含它)。
【讨论】:
见:http://www.dns-sd.org/trailingdotsindomainnames.html
它链接到的旧 RFC:http://www.ietf.org/rfc/rfc1034.txt
真正完全合格的域名在 TLD 之后有一个句点,但除非您管理的是 DNS 服务器,否则您几乎不会遇到它们。但是,如果您要编写一个不同主机名的 HTTP 服务器,则可能需要考虑这一点。
【讨论】:
正如评论中所说,这个伟大的resource 解决了您的许多查询,包括以下特定于您的查询的部分:
完全限定域名
当我在 Safari 等网络浏览器中双击 Bonjour (DNS-SD) 名称时,生成的 URL 的主机名末尾带有一个点。这是一个错误吗?
不,最后的点是正确的。
你可以在这里试试。尝试在 www.dns-sd.org 的末尾添加一个点,如本页顶部的副标题所示,您仍然应该得到相同的页面。
这是一个鲜为人知的事实,但完全限定(明确)的 DNS 域名末尾有一个点。运行 DNS 服务器的人通常知道这一点(如果您错过了尾随的点,您的 DNS 配置不太可能工作),但一般公众通常不知道。结尾没有点的域名不是完全限定的,并且可能不明确。这在 1987 年的 DNS 规范 RFC 1034 中有记录:
由于一个完整的域名以根标签结尾,这导致一个 以点结尾的印刷形式。我们使用这个属性来区分:
代表完整域名的字符串 (通常称为“绝对”)。例如,poneria.ISI.EDU.
一个字符串,代表一个开始标签 域名不完整,应由 使用本地领域知识的本地软件(通常 称为“亲戚”)。例如,“poneria”在 ISI.EDU 域。
这对网页浏览有何影响
定义 HTTP 协议的人理解这个问题,并且 RFC 1738 明确指出 URL 的部分应该包含一个完全限定 域名:
3.1。 通用 Internet 方案语法
//<user>:<password>@<host>:<port>/<url-path>主持人
网络主机的完全限定域名不幸的是,实现网络浏览器客户端的人似乎不明白这意味着什么。当您访问一个网站时,大多数网络浏览器在“主机:”字段中输入的值是用户键入的值,而不是计算机实际最终使用的值,在应用 DNS 用户的搜索列表从部分名称。例如,用户可以通过以下三种不同方式引用主机“www.example.com”。
- www.example.com.——绝对域名
- www.example.com — 相对域名,在应用“.”之后这总是隐含在每个人的 DNS 搜索列表中,变成 www.example.com。
- www 在 DNS 搜索列表中带有“example.com” - 用户键入“www”并获得
www.example.com。将 Host: 参数发送到 Web 服务器时,Web 浏览器客户端会输入用户键入的内容(www.example.com.、www .example.com 或 www)而不是客户端最终在 DNS 中实际查找的内容(www.example.com. 在所有三种情况下) . 不幸的是,Apache Web 服务器(至少在某些版本中)无法识别所有这三个名称只是引用同一主机的三种不同方式。
如果您是使用 Apache “VirtualHost” 指令或类似指令设置网站的网站管理员,您需要有一个 ServerAlias 行列出用户可能键入以访问该网站的所有内容(通常是第一个标签、不带点的全名和带点的全名,如上例所示)。
【讨论】: