Я запрограммировал сценарий загрузки на PHP, который позволяет пользователю загружать файлы с моего сервера.
Я запрограммировал, что доступны только 2 соединения на загрузку, и это работает.
У меня вопрос: какой код HTTP-статуса можно / нужно отправить, чтобы информировать диспетчер загрузок пользователей о достижении максимального количества подключений, когда у них уже есть 2 подключения на загрузку?
2 ответа
Не существует кода "максимальное количество подключений", но, вероятно, вы ищете 429 или 503:
429 Слишком много запросов
Код состояния 429 указывает, что пользователь отправил слишком много запросов за заданный промежуток времени («ограничение скорости»).
Представления ответа ДОЛЖНЫ включать подробности, объясняющие условие, и МОГУТ включать заголовок Retry-After, указывающий, как долго ждать, прежде чем делать новый запрос.
10.5.4 503 Служба недоступна
В настоящее время сервер не может обработать запрос из-за временной перегрузки или обслуживания сервера. Подразумевается, что это временное состояние, которое будет улучшено после некоторой задержки. Если известно, продолжительность задержки МОЖЕТ быть указана в заголовке Retry-After. Если Retry-After не задан, клиент ДОЛЖЕН обработать ответ так же, как и для ответа 500.
Примечание. Наличие кода состояния 503 не означает, что сервер должен использовать его при перегрузке. Некоторые серверы могут просто отказаться от подключения.
Вы можете просмотреть все коды в спецификации плюс этот список дополнительных кодов .
Я не знаю, как сказать, что они достигли максимума. Только то, что они пытались закачать слишком много и ошиблись при 3-м подключении.
Единственная ошибка, которую я, вероятно, использовал бы - это 429, «Слишком много запросов».
Из RFC 6585:
http://tools.ietf.org/html/rfc6585#page-3
429 слишком много запросов
Код состояния 429 указывает на то, что пользователь отправил слишком много запросы за заданный промежуток времени («ограничение скорости»).
Представления ответа ДОЛЖНЫ включать подробности, объясняющие условие и МОЖЕТ включать заголовок Retry-After, указывающий, как долго ждать, прежде чем делать новый запрос.
Например:
HTTP / 1.1 429 Слишком много запросов Тип содержимого: текст / html Повторить после: 3600
Слишком много запросов
Слишком много запросов
Я разрешаю только 50 запросов в час к этому веб-сайту за авторизованный пользователь. Повторите попытку в ближайшее время.
Обратите внимание, что эта спецификация не определяет, как исходный сервер идентифицирует пользователя и как подсчитывает запросы. Например, исходный сервер, который ограничивает частоту запросов, может сделать это на основе количество запросов для каждого ресурса по всему серверу, или даже среди множества серверов. Точно так же он может идентифицировать пользователя по его учетным данным для аутентификации или cookie с отслеживанием состояния.
Ответы с кодом состояния 429 НЕ ДОЛЖНЫ храниться в кэше.
Хорошее место, где можно найти большую часть кода, действительно используемого большим количеством серверов или крупными компаниями, - это Википедия:
http://en.wikipedia.org/wiki/List_of_HTTP_status_codes
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.