PHP头部 HTTP 1.0 vs 1.1

5
你是否应该使用HTTP 1.0或1.1发送404 header?这个问题已经被问过了:404 header - HTTP 1.0 or 1.1?请参考该链接。
header( "HTTP/1.0 404 Not Found", true, 404 );

替代

header( "HTTP/1.1 404 Not Found", true, 404 );

当用户代理使用HTTP/1.0时,是否应该使用相同的HTTP版本进行回复?

顺便说一下,我用它来告诉当前未登录的用户页面不存在。我知道不同的HTTP版本有不同的功能,比如HTTP/1.1。


@Matt Ball 我已经阅读了https://dev59.com/7XE85IYBdhLWcg3wdDIM上的答案,但我觉得它们没有回答是否在客户端使用HTTP/1.1时回复HTTP/1.1是一个好的做法。我的意思是,如果Web服务器回复HTTP/1.1,由于HTTP/1.0中的连接限制,下一个请求可能会更快。 - AndersTornkvist
@Matt Ball 更正确的是,那里的答案实际上建议始终使用HTTP/1.0进行回复。我同意这可能实际上是一个重复的问题。 - AndersTornkvist
@Matt,我想我在这里得到了同样的答案,但我的问题可能不太清楚。我考虑使用HTTP / 1.1的好处。也许https://dev59.com/7XE85IYBdhLWcg3wdDIM的答案可以得到改进,因为此处不再允许更多答案。 - bloodphp
@Richard86 如果客户端使用HTTP/1.1,是否有使用它的好处? - bloodphp
阅读当前的HTTPbis规范。http://tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-14#page-15 - HTTP/1.x版本应该表现相同。它还列出了一些处理不同客户端版本的建议。--顺便说一句,PHP和Apache无论如何都会过滤您的状态:行。如果有疑问,请使用HTTP/1.0,以免被语义差异所困扰。 - mario
2个回答

1
当用户代理表示使用HTTP 1.0(在1996年5月发布的RFC 1945中指定)时,您不应假设它理解后来开发的协议(如在1999年6月指定的RFC 2616中指定的HTTP 1.1)。因此,在回复中使用HTTP 1.0。

0
如果您不想区分 1.0 和 1.1 并想发送静态标头,那么我猜...
header( "HTTP/1.0 404 Not Found", true, 404 );

这是一种安全的做法 - 每个客户端都使用HTTP/1.0协议。

但我也预期,在出现404错误时,没有任何客户端会检查http版本。至少,我从未遇到过与http版本相关的问题...


1
这是否意味着连接将不再支持HTTP 1.1的特性,如持久连接?对我来说,发送HTTP 1.0作为一个笼统的规则似乎很懒惰和不明智,特别是对于包含CSS和其他外部资源的404页面。 - ChaseMoskal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接