单个 HTTP 响应中是否允许使用多个状态代码标头?

Jon*_*vey 4 http http-headers

我有一个发送 HTTP 状态代码的网络应用程序。在某些情况下,404 代码作为标头发送,但随后也会在同一响应中发送 200 错误。

HTTP/1.0 404 Not Found
HTTP/1.0 200 Ok
Run Code Online (Sandbox Code Playgroud)

我无法更改执行顺序以防止发送第一个状态代码,因此第二个代码尝试覆盖它。

Chrome 会忽略第一个代码并假定状态为Ok。这符合 HTTP 标准吗?我应该依赖它吗?

Jul*_*hke 6

不,它不符合标准,您不应该依赖它。请参阅https://www.greenbytes.de/tech/webdav/rfc7230.html#rfc.section.5.6

仅当一个或多个信息响应(1xx,请参阅 [RFC7231] 的第 6.2 节)先于同一请求的最终答复时,每个请求才会出现多个响应消息。