我们被难住了。我们的 Apache httpd + Passenger Web 服务器中出现了一个意想不到的新标头。我们有一个敏感的 Web 客户端正在读取此标头,目前我们无法修改。
我们可以修改这部分标头吗?据我们了解,“OK”是规范的一部分。我们希望修改标头,使其包含规范的所有预期部分。
我们在期待:
"HTTP/1.1 200 OK"
但得到的却是:
"HTTP/1.1 200 "
答案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>
所以,你的服务器按照规格运行;客户不是。