429

Too Many Requests

Официальный сайт
Сервер получил слишком много запросов

Спецификация кода состояния HTTP 429

Код состояния 429 Too Many Requests указывает на то, что пользователь отправил слишком много запросов за определенный промежуток времени ("ограничение скорости").

Представления ответа ДОЛЖНЫ включать подробности, объясняющие условие, и МОГУТ включать заголовок Retry-After, указывающий, как долго нужно ждать, прежде чем делать новый запрос.

Например:

HTTP/1.1 429 Too Many Requests Too Many Requests
Content-Type: text/html
Retry-After: 3600

Обратите внимание, что данная спецификация не определяет, как сервер происхождения идентифицирует пользователя, и как он подсчитывает запросы. Например, сервер происхождения, ограничивающий количество запросов, может делать это на основе подсчета запросов по каждому ресурсу, по всему серверу или даже по нескольким серверам. Аналогичным образом, он может идентифицировать пользователя по его учетным данным аутентификации или stateful cookie.

Ответы с кодом состояния 429 Too Many Requests НЕ ДОЛЖНЫ храниться в кэше.

.

Источник / Цитаты из: Код состояния HTTP 429 Too Many Requests определен разделом 4 из RFC6585.

Как вывести код состояния 429 с помощью PHP?

Чтобы бросить на веб-страницу код статуса HTTP 429, можно использовать PHP-функцию http_response_code. Синтаксис выглядит следующим образом: http_response_code(429) (PHP 5 >= 5.4.0, PHP 7, PHP 8)

Проверка кода состояния 429 HTTP

Чтобы иметь возможность отображать код состояния HTTP (в данном случае 429 Too Many Requests) и другую информацию на стороне клиента, необходимо открыть консоль разработки с помощью F12. Затем перейдите на вкладку "Сеть". Теперь можно открыть страницу, сайт (пример index.php) должен быть виден на вкладке "Сеть". Его необходимо выбрать, а затем выбрать раздел Herder. После этого пользователь увидит следующий результат:

Код состояния 429 Too Many Requests
Обзор
URL: https://http-statuscode.com/errorCodeExample.php?code=429
Статус: 429 Too Many Requests
Эти: Network
IP-адрес: XX.XX.XX.XX
Код состояния 429 Too Many Requests

Как создать собственную страницу ошибок для кода состояния 429

Создать собственную страницу ошибки 429 Too Many Requests относительно просто как на веб-серверах "Apache", так и на "NGINX".

Apache Webserver

Веб-сервер "Apache" является одним из самых распространенных веб-серверов в Интернете. Чтобы создать собственную страницу ошибки 429 Too Many Requests в "Apache", необходимо внести следующее изменение в следующий файл.

File: .htaccess
ErrorDocument 429 /errors/429.html

NGINX Webserver

Подобно веб-серверу "Apache", "NGINX" также широко используется в Интернете. Чтобы создать собственную страницу ошибки 429 Too Many Requests в "NGINX", необходимо внести следующее изменение в следующий файл.

File: sites-enabled/default
error_page 429 /429.html;
location = /429.html {
    root /usr/share/nginx/html;
    internal;
}

Совместимость кода состояния 429 с браузерами

Chrome no data
Edge no data
Firefox no data
Opera no data
Safari no data
Chrome Android no data
Firefox for Android no data
Opera Android no data
Safari on iOS no data
Internet no data
WebView Android no data

Константы в языках программирования

HttpStatusCode.TooManyRequests
http.StatusTooManyRequests
Response::HTTP_TOO_MANY_REQUESTS
:too_many_requests

Внешние ссылки с дополнительной информацией о коде состояния HTTP 429:

Развлекательные мемы о коде статуса HTTP 429

Статьи в блогах

SEO и коды состояния HTTP: Всесторонний анализ

Оптимизация сайта для поисковых систем (SEO) - сложная задача. Одним из часто упускаемых из виду, но крайне важных для ранжирования аспектов являются коды статуса HTTP. Эти небольшие трехзначные ко...

Защита от атак через файл xmlrpc.php в WordPress

Раздел 1: Что такое файл xmlrpc.php и где он находится?Файл xmlrpc.php является важным компонентом WordPress, одной из ведущих мировых систем управления контентом (CMS) для создания и управления ве...

Автор: Tony Brüser
Автор: Tony Brüser

Тони Брюсер - увлеченный веб-разработчик, склонный к изучению кодов состояния HTTP.

LinkedInGitHub