如果您*
像正则表达式一样将其读取为“零个或多个字符”,它看起来就是这样。
如果您阅读RFC的Notational Convention ,它的含义似乎略有不同:
*rule
The character "*" preceding an element indicates repetition. The full form is "<n>*<m>element" indicating at least <n> and at most <m>
occurrences of element. Default values are 0 and infinity so that
"*(element)" allows any number, including zero; "1*element" requires
at least one; and "1*2element" allows one or two.
所以虽然不是正则表达式,但意义本质上是一样的。在这种情况下,没有尾随数字的星号意味着可以有“0 个或多个”“文本”。奇怪的说法,但似乎你是对的。
严格来说,空格是强制性的,尽管我认为如果没有要分隔的内容,可能会省略分隔符。但是,如果他们只是在空格上拆分此字符串并尝试读取描述应该在其中的元素,它可能会杀死具有严格实现的客户端。但是话又说回来,那些客户应该使用一些防御性编程来捕捉这种情况。;)
RFC确实说它可以是任何文本,只要它是对问题的可读描述。这个文本很重要,因为客户端可能不理解状态码的确切含义,所以它可能需要将文本显示给用户。因此,即使您可以省略它,我个人也不会。