PHP下载脚本-其中HTTP-statuscode用于最大连接


PHP Downloadscript - Which HTTP-statuscode for maximum connections?

我已经在PHP中编写了一个下载脚本,允许用户从我的服务器下载文件。

我已经编程了,每次下载只有2个连接可用,这是有效的。

我的问题是,我可以/必须发送哪个HTTP-statuscode来通知用户downloadmanager最大连接达到,当他们每次下载已经有2个连接?

没有"最大连接数";代码,但429或503可能是您要找的:

429请求太多

429状态码表示用户在给定时间内发送了太多请求("速率限制")。

响应表示应该包括解释条件的细节,并且可能包括一个Retry-After报头,指示在发出新请求之前等待多长时间。

10.5.4 503服务不可用

由于临时超载或服务器维护,服务器目前无法处理请求。言下之意是,这是一种暂时的状况,将在一段时间后得到缓解。如果知道延迟的长度,可以在重试后报头中指出。如果没有给出Retry-After,客户端应该像处理500响应一样处理响应。

注意:503状态码的存在并不意味着服务器在过载时必须使用它。有些服务器可能希望直接拒绝连接。

您可以查看中的所有代码,规格加上这个附加代码列表

我不知道如何判断它们是否达到了最大值。只是他们试图下载太多,在第三次连接时出错。

我可能会使用的一个错误是429,"Too Many Requests"

来自RFC 6585:

https://www.rfc-editor.org/rfc/rfc6585第3页

  • 429 Too Many Requests

    429状态码表示用户发送过多给定时间内的请求("速率限制")。

    响应表示应该包括解释的细节条件,并且可能包含一个Retry-After报头,指示需要多长时间在发出新请求之前等待。

    例如:

    HTTP/1.1 429请求过多内容类型:text/htmlRetry-After: 3600

    请求太多

    请求太多

    我每小时只允许50个请求访问这个网站已登录用户。请稍后再试。

    请注意,该规范没有定义如何初始服务器标识用户,而不是它如何计数请求。例如,限制请求速率的源服务器可以基于基于每个资源的请求计数,在整个服务器上,甚至在一组服务器之间。同样,它可以标识用户通过其身份验证凭据,或有状态cookie。

    状态码为429的响应绝对不能被缓存存储。

  • 找到大量服务器或大公司实际使用的代码的好地方是维基百科:

    http://en.wikipedia.org/wiki/List_of_HTTP_status_codes