【问题标题】:PHP header HTTP 1.0 vs 1.1 [duplicate]PHP标头HTTP 1.0 vs 1.1 [重复]
【发布时间】:2012-12-21 04:16:53
【问题描述】:

可能重复:
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/1.1 具有不同的功能。

【问题讨论】:

  • @Matt Ball 我已经阅读了stackoverflow.com/questions/2769371/404-header-http-1-0-or-1-1 的答案,但我觉得他们没有回答如果客户端使用 HTTP/1.1 回复是否是一个好习惯。我的意思是,如果由于 HTTP/1.0 中的连接限制,Web 服务器使用 HTTP/1.1 回复,下一个请求可能会更快。
  • @Matt Ball 更准确地说,那里的答案实际上建议始终使用 HTTP/1.0 回复。我同意这实际上可能是重复的。
  • @Matt 我想我在这里得到了相同的答案,但我的问题可能不太清楚。我想到了使用 HTTP/1.1 的好处。也许stackoverflow.com/questions/2769371/404-header-http-1-0-or-1-1 的答案可以改进,因为这里不允许更多答案。
  • @Richard86 如果客户端使用 HTTP/1.1 有什么好处吗?
  • 阅读当前的 HTTPbis 规范。 tools.ietf.org/html/draft-ietf-httpbis-p1-messaging-14#page-15 - HTTP/1.x 版本应该表现相同。它还列出了处理不同客户端版本的一些建议。 -- 顺便说一句,PHP 和 Apache 过滤您的 Status: 行。如有疑问,请使用HTTP/1.0,不要被语义差异所困扰。

标签: php http header http-headers


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    如果你不想区分 1.0 和 1.1 并且想发送静态头,我猜

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

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

    但我也希望在 404 的情况下根本没有客户端检查 http 版本。至少,我从未遇到过 http 版本的问题...

    【讨论】:

    • 这是否意味着连接将不再支持 HTTP 1.1 功能,如持久连接?将 HTTP 1.0 作为一揽子规则发送对我来说似乎既懒惰又不明智,尤其是对于包含 CSS 和其他外部资产的 404 页面。
    猜你喜欢
    • 1970-01-01
    • 2011-02-15
    • 2016-09-21
    • 2010-09-19
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2017-03-13
    • 2010-10-11
    相关资源
    最近更新 更多