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