正常的HTTP响应如下所示:
HTTP/1.0 200 OK
Run Code Online (Sandbox Code Playgroud)
可以省略RFC称之为Reason-Phrase的内容吗?就像是:
HTTP/1.0 200
Run Code Online (Sandbox Code Playgroud)
RFC说:
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Reason-Phrase = *<TEXT, excluding CR, LF>
Run Code Online (Sandbox Code Playgroud)
我理解为:
所以以下内容是有效的:
HTTP-Version SP Status-Code SP CRLF
Run Code Online (Sandbox Code Playgroud)
我是否正确理解了RFC?
Gol*_*rol 17
它看起来就是这样,如果你读到*'零个或多个字符',就像在正则表达式中一样.
如果您阅读RFC 的符号公约,它似乎有一个略微不同的含义:
*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 确实说它可以是任何文本,只要它是一个人类可读的问题描述.此文本很重要,因为客户端可能无法理解状态代码的确切含义,因此可能需要向用户显示文本.所以即使你可以省略它,我个人也不会.
| 归档时间: |
|
| 查看次数: |
5014 次 |
| 最近记录: |