What is the proper HTTP status for "too many connections?"

I am working on an HTTP server which is supposed to only allow a certain amount of connections per user. How do I gracefully tell the user that more than n connections are not permitted. I tried answering the n+1th request with a 403 but apparently that kills the whole download. (At least with DownThemAll!)


Solution 1:

429: Too Many Requests

seems to be the one.

Solution 2:

If the user is exceeding a user specific cap, then 429 "Too Many Requests".

But, if the user is within their individual cap (or none exists), but the server is buckling under the aggregate across all users 509 "Bandwidth Limit Exceeded" (this one is common convention, but not defined this way by an RFC).

The difference is that in the first case we have a naughty client, so 4xx series error. In the latter case, the server oversubscribed its capacity and admits defeat, so 5xx series error.