如果" .com"之后存在一个点,它是否是有效的URL?

时间:2016-04-29 07:12:39

标签: http url dns

我遇到了一些网址,这些网址在.com之后也有或没有点/句点呈现,而有些则没有。

例如:

www.example.com.

如果在.com之后添加点/句点或者是否应该转到404页面,URL是否应该正常呈现?

3 个答案:

答案 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,没有尾随点的整个名称,以及带有尾随点的整个名称,如上例所示。