1

在阅读RFC 1035 第 5.1 节以编写主文件解析器时,我偶然发现了以下语句:

5.1。格式

这些文件的格式是一系列条目。条目主要是面向行的,尽管括号可用于跨行边界继续项目列表,并且文本文字可以在 text 中包含 CRLF。制表符和空格的任何组合都充当组成条目的单独项目之间的分隔符。主文件中任何行的结尾都可以以注释结尾。注释以“;”开头 (分号)。

作者所说的“文本文字可以在文本中包含 CRLF”是什么意思?我知道下面的条目是有效的,如第 5.3 节所述,但我找不到该语句的示例或"text literal"的正确定义。我还搜索了配套的RFC 1034,但没有成功提及上述声明。

@   IN  SOA     VENERA      Action\.domains (
                                 20     ; SERIAL
                                 7200   ; REFRESH
                                 600    ; RETRY
                                 3600000; EXPIRE
                                 60)    ; MINIMUM

我会假设文本文字可以用括号分隔。根据 RFC 1035,以下任何评论是否有效?CRLF 在文件中的有效方式有哪些?

@   IN  SOA     VENERA      Action\.domains (
                                 20     ;  Some example of a multi-line comment 
                                           inside parentheses
                                 7200
                                 600
                                 3600000
                                 60)    ;  (Some example of parentheses
                                           inside a multi-line comment)
4

1 回答 1

1

这意味着这应该是有效的:

example.com. IN TXT "hello,
world"

RFC 作者可能期望它等同于:

example.com. IN TXT "hello,\013\010world"

由于在这种情况下行尾编码的模糊性(如果平台使用 LF 作为行终止符,您是否仍然在 TXT 记录中获得 CRLF?),我怀疑这是否被广泛实施。

于 2019-10-20T19:13:29.010 回答