我们可以配置 HTTP 响应代码标头吗?

我们可以配置 HTTP 响应代码标头吗?

我们被难住了。我们的 Apache httpd + Passenger Web 服务器中出现了一个意想不到的新标头。我们有一个敏感的 Web 客户端正在读取此标头,目前我们无法修改。

我们可以修改这部分标头吗?据我们了解,“OK”是规范的一部分。我们希望修改标头,使其包含规范的所有预期部分。

我们在期待:

"HTTP/1.1 200 OK"

但得到的却是:

"HTTP/1.1 200 "

答案1

你不需要解释你电脑中的数字响应代码以外的任何内容电脑程序;文本表示用于人类消耗。

RFC 2616 第 6.1.1 节

6.1.1 状态码和原因短语

Status-Code 元素是尝试理解并满足请求的 3 位整数结果代码。这些代码在第 10 节中有完整定义。Reason-Phrase 旨在对 Status-Code 进行简短的文字描述。Status-Code 供自动机使用,Reason-Phrase 供人类用户使用。客户端无需检查或显示 Reason-Phrase。

寻找“OK”(或者实际上,任何超出数字的内容)是程序中的逻辑错误。ABNF 语法明确指出,Reason-Phrase 可以为空:

      Reason-Phrase  = *<TEXT, excluding CR, LF>

所以,你的服务器按照规格运行;客户不是。

相关内容