Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
据我所知,域似乎是 DNS 哈希的键,其中值是域名的资源记录。为什么它们的长度有限?我发现的规范说一个域名:
+最大标签长度为 63 个字符
+最多有 127 个标签。
+不能超过255字节的数据
还有对特殊字符排序等的各种限制。这是为什么呢?
标签长度 63 字节的限制是因为在 DNS 协议中,标签存储为 ,长度是单个字节,但长度字段的两个高位保留用于其他内容(压缩),因此长度本身留有 6 位,2^ 6=64 个可能的值 - 0..63。
为了简化实现,域名的总长度(即标签八位字节和标签长度八位字节)被限制在 255 个八位字节或更少。
我没有在规范中找到 127 个标签的限制。它的产生仅仅是因为整个域名最多 255 个字节,并且标签总是不少于 2 个字节(单个字母和点或长度和字母)。