2011-05-15 84 views
4

可能重复:
404 header - HTTP 1.0 or 1.1?PHP头HTTP 1.0 VS 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具有不同的功能。

+0

@马特球我读过的答案在http://stackoverflow.com/questions/2769371/404-header-http-1-0-or-1-1但我觉得他们不回答是否是一个很好的做法来回复HTTP/1.1如果客户端使用它。我的意思是,如果由于HTTP/1.0中的连接限制,Web服务器使用HTTP/1.1进行回复,则下一个请求可能会更快。 – AndersTornkvist 2011-05-15 20:15:12

+0

@Matt Ball更准确地说,那里的答案实际上建议总是使用HTTP/1.0进行回复。我同意这实际上可能是重复的。 – AndersTornkvist 2011-05-15 20:18:46

+0

@Matt我想我在这里得到了同样的答案,但我的问题可能不是很清楚。我想到了使用HTTP/1.1的好处。也许在http://stackoverflow.com/questions/2769371/404-header-http-1-0-or-1-1的答案可以改善,因为在这里不允许有更多的答案。 – bloodphp 2011-05-15 20:22:45

回答

0

如果你不想1.0和1.1之间的区别,并想送一个静态的头,我猜

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

是做它的安全的方式 - 每个客户的讲HTTP/1.0。

但我也期待没有客户在所有检查的HTTP版本中与HTTP版本404。至少,我从来没有经历过的问题的情况下...

+1

这是否意味着连接将不再支持持久连接等HTTP 1.1功能?发送HTTP 1.0作为一揽子规则对我来说似乎很懒,尤其是对于包含CSS和其他外部资产的404页面而言。 – ChaseMoskal 2013-06-23 22:29:00

1

当用户代理表示它使用HTTP 1.0(在1996年5月发布的RFC 1945中指定)时,您不应该认为它理解稍后开发的协议(例如1999年6月在RFC 2616中指定的HTTP 1.1)。所以在回复中使用HTTP 1.0。