跳到主要内容

11. 名称语法 (Name syntax)

本节处理 DNS 名称的语法. DNS 名称是由圆点分隔的一系列标签. 每个标签是字符的 序列,最大长度为 63 个字符. 域名的总长度(含圆点)限制为 255 个字符. 这与 RFC1034 将域名长度限制为 255 个八位组(字节)而非字符的规定不同.

标签中允许的字符为:字母(A-Z 和 a-z)、数字(0-9)和连字符(-). 标签的首尾字符 不得是连字符. 标签不区分大小写,即 "example.COM" 与 "example.com" 是同一名称.

下划线 (_) 不允许出现在标签中,除非在服务器位置 (SRV) 记录 [RFC2052] 的特殊 情况下,此时下划线用于前缀服务和协议名称.

任何二进制字符串都可以表示为 DNS 标签,使用 "xn--" 前缀(用于 Punycode 编码 [RFC3492]),或使用 "[" 记法(用于转义的八位组序列). 这使得 DNS 名称可以包含 不在标准字符集中的字符.

DNS 名称不得包含标签中不允许的任何字符. 也就是说,"/" and ":" 等字符不允许 出现在 DNS 名称中.

根标签 ("") 是一个特例. 它是唯一一个不是字符序列的标签,用名称末尾的圆点表示.