Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 服务器过载时要发送什么头代码?_Php_Http_Http Headers_Httpwebrequest - Fatal编程技术网

Php 服务器过载时要发送什么头代码?

Php 服务器过载时要发送什么头代码?,php,http,http-headers,httpwebrequest,Php,Http,Http Headers,Httpwebrequest,在php中,我希望在进一步处理之前提供一条定制的错误消息 这是我的 if($overloaded==true){ header('HTTP/1.0 503 Service Temporarily Unavailable'); header('Status: 503 Service Temporarily Unavailable'); header('Retry-After: 300');//300 seconds die(); } 发件人: 关于w3.org上的

在php中,我希望在进一步处理之前提供一条定制的错误消息

这是我的

if($overloaded==true){
    header('HTTP/1.0 503 Service Temporarily Unavailable');
    header('Status: 503 Service Temporarily Unavailable');
    header('Retry-After: 300');//300 seconds
    die();
}
发件人:

关于w3.org上的503服务不可用:

发件人:


当我的服务器过载时,我应该如何处理HTTP请求?

如果你想准确地说,就我所知,你实际上只有两个选择,即503或500

500表示您因意外情况/原因无法满足请求

503表示由于服务器临时过载或维护,您无法完成请求


据我所知,错误500是一个非常普遍的错误,503是最准确的,我强烈建议您使用超过500。准确度总是最好的。

在这种情况下,状态代码是基于意见的。我的问题是,您如何确定服务器过载?如果您有某种方法确定服务器实际过载,那么503似乎是一个明显的选择,但是如果过载是由超时确定的,那么504也会起作用。您是对的,它是基于意见的,但在这种情况下,我正在寻找多个备选方案。我不想在等待很长时间后重新获取一些错误消息状态代码与代码或等待时间没有真正的相关性。你可以发布你想要的任何状态代码。由客户来解释状态代码,如果一个状态代码不完全符合您的要求,您可以为最终用户创建自己的指导原则。标准化的状态代码只是客户在连接到应用程序/站点时普遍识别特定问题的一种简单方法。你们提供了非常好的东西,谢谢!这就是如何确定服务器过载的方法。我不知道是否仅依靠平均负载来确定服务器是否过载。我的意思是,如果四核处理器上的平均负载为80,那么当然,很长一段时间内它会过载,但24处理器服务器上的平均负载为25,则可能意味着它的负载率为100%,或者处理得很好。这不是一门完美的科学。谢谢。我只是想澄清一下“一些服务器可能希望简单地拒绝连接”,因为这听起来不像是5xx错误,如果我直接发送503,我应该如何处理标题('Retry-After:300')//300秒看看这个问题-记住答案是2010年的。@RafaSashi换句话说,这要看情况而定。在极少数情况下,您需要在之后重试。在大多数情况下,如果页面未加载,用户可能会自行刷新。在其他情况下,如果连接失败,程序可能会在以后重试。我想不出有多少情况下会有客户机等待Retry After标头生效,即使它得到了正确的实现。
  Note: The existence of the 503 status code does not imply that a
  server must use it when becoming overloaded. Some servers may wish
  to simply refuse the connection.