gpt4 book ai didi

http - HTTP 响应可以省略 Reason-Phrase 吗?

转载 作者:可可西里 更新时间:2023-11-01 15:06:44 25 4
gpt4 key购买 nike

正常的 HTTP 响应如下所示:

HTTP/1.0 200 OK

是否可以省略 RFC 的内容?调用原因短语?像这样的东西:

HTTP/1.0 200

RFC 说:

Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Reason-Phrase = *<TEXT, excluding CR, LF>

我的理解是:

  • Reason-Phrase 可以使用空字符串
  • 但是 Status-Code 后面应该有一个空格

所以以下内容是有效的:

HTTP-Version SP Status-Code SP CRLF

我是否正确理解了 RFC?

最佳答案

它看起来是这样的,如果你阅读 *作为“零个或多个字符”,就像在正则表达式中一样。

如果您阅读Notational Convention,它的含义似乎略有不同。 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.

所以虽然不是regex,但是意思本质上是一样的。星号,在这种情况下没有尾随数字,意味着可以有“0 个或更多”“文本”。奇怪的说法,但看起来你是对的。

严格来说,空格 强制性的,尽管我认为如果没有什么可分隔的,则可以省略分隔符。它可能会杀死具有严格实现的客户,但是,如果他们只是在空格上拆分这个字符串并尝试读取描述应该在其中的元素。但话又说回来,那些客户应该使用一些防御性编程来捕捉这种情况。 ;)

RFC 确实说它可以是任何文本,只要它是对问题的人类可读描述即可。这段文字很重要,因为客户端可能不理解状态码的确切含​​义,所以可能需要向用户显示这段文字。因此,即使您可以省略它,我个人也不会。

关于http - HTTP 响应可以省略 Reason-Phrase 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17517086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com