Как владелец веб-сайта вы время от времени сталкиваетесь с сообщением об ошибке. Некоторые из этих ошибок будет относительно просто исправить, а другие – сложно. Возьмем, к примеру, ошибку HTTP 429.
Источник изображения
Устранение этой ошибки затруднено, поскольку она содержит мало подробностей. Вы знаете, что что-то не так, и вам нужно это исправить, но вы не совсем уверены, что произошло и почему.
Чтобы убедиться, что вы понимаете и можете решить эту проблему, мы рассмотрим, что означает ошибка 429 и каковы ее наиболее распространенные решения.
Что такое ошибка HTTP 429?
Ошибка HTTP 429 – это код состояния ответа HTTP, который указывает, что клиентское приложение превысило предел скорости или количество запросов, которые они могут отправить за определенный период времени. Обычно этот код не просто сообщает клиенту о прекращении отправки запросов – он также указывает, когда они могут отправить другой запрос.
Ответ 429 технически не является ошибкой – это ответ сервера, интерфейса прикладного программирования (API) или плагина, который сообщает клиентскому приложению о прекращении отправки запросов, потому что у них просто недостаточно ресурсов для его приема в это время. Клиентское приложение обычно относится к веб-сайту или приложению, но также может относиться к отдельным пользователям, таким как администратор сайта, посетитель сайта или хакер.
Например, если пользователь слишком часто пытается получить доступ к странице на вашем веб-сайте в течение короткого периода времени, ваш сервер может отправить ошибку 429. В случае попытки грубой силы входа в систему, когда хакер неоднократно пытается войти на ваш сайт, ограничение скорости является важной мерой безопасности. Но ограничение скорости также сработает, если ваш сайт использует слишком много ресурсов на сервере или службе общего хостинга. Если, например, с IP-адреса получено более 50 запросов в течение одной минуты, PayPal Sandbox заблокирует этот IP-адрес на следующие пять минут.
Хотя ответ 429 может показаться карательным, на самом деле это защитная мера от пользователей, намеренно или случайно злоупотребляющих ресурсами сервера (или API, плагина или другой службы). Он разработан для предотвращения резервного копирования или переполнения запросов, которые могут перегрузить сервер или другую службу, которая предназначена для совместного использования и использования многими веб-сайтами и приложениями. Таким образом, контролируя количество и время запросов, ограничения скорости предотвращают проблемы до их возникновения.
Если вы видите ошибку HTTP 429 на своем сайте по другим причинам, вам может потребоваться уменьшить количество запросов к серверу или вызовов API, которые вы делаете. Обсуждаемые ниже шаги являются общими исправлениями ошибки 429 Too Many Requests. Если у вас есть сайт WordPress, вам могут потребоваться специальные решения для WordPress.
Как исправить ошибку HTTP 429
- Подождите, чтобы отправить еще один запрос.
- Реализуйте экспоненциальную отсрочку.
- Установите свой собственный предел дросселирования.
- Свяжитесь с вашим хостинг-провайдером.
Большинство приведенных ниже шагов направлены на предотвращение, а не на исправление ошибки HTTP 429 задним числом. Взглянуть.
1 Дождитесь отправки другого запроса.
Самый простой способ исправить ошибку HTTP 429 – дождаться отправки другого запроса. Часто этот код состояния отправляется с заголовком «Retry-after», который указывает период времени ожидания перед отправкой другого запроса. Он может указывать всего несколько секунд или минут.
Вот пример, который просит клиента подождать час перед отправкой другого запроса.
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too Many Requests</h1>
<p>Only 100 requests per hour per logged in user is allowed on this website. Try again soon.</p>
</body>
</html>
2 Реализуйте экспоненциальный откат.
Если заголовок «Retry-after» не отправляется, и вы не знаете, сколько времени ждать перед попыткой, вам следует реализовать повторные попытки с экспоненциальным откатом. Используя этот подход, ваше приложение не будет немедленно повторять неудавшийся запрос; вместо этого он выполнит серию повторных попыток с постепенно увеличивающимся временем ожидания между каждой попыткой. Когда запрос будет окончательно принят, вы узнаете, какое время или скорость ожидания приемлемы.
Вы можете добавить код для реализации этого подхода или использовать такой инструмент, как Celery, который имеет встроенную функцию экспоненциальной задержки.
Источник изображения
3 Установите свой собственный предел дросселирования.
Регулирование – это процесс ограничения количества запросов, которые приложение может отправить за определенный промежуток времени. Если этот предел превышен, запросы к серверу или API обычно отбрасываются или выполняются с кэшированными данными.
Хотя этот подход чаще всего используется сторонними API или платформами для предотвращения превышения клиентскими приложениями своих ограничений, он также может быть полезен для ограничения вашего собственного потребления сторонних API или ресурсов сервера. Фактически, вы можете установить более строгий лимит регулирования для себя, чтобы предотвратить выход за пределы сервера, API или другой службы, которую вы используете. Это особенно хорошая идея, если вы используете дорогостоящий API, например Twitter API, и не хотите выходить за рамки своей политики использования.
4 Свяжитесь с вашим хостинг-провайдером.
Обращение к вашему хостинг-провайдеру – это всегда вариант для любой ошибки на вашем веб-сайте, но это должен быть один из последних вариантов, которые вы пробовали.
Если вы попробовали описанные выше действия и по-прежнему видите ошибку 429, возможно, причина возникла на вашем сервере, а не на вашем веб-сайте. Также возможно, что ваш хост блокирует запросы от определенных сторонних сервисов или платформ, таких как Google Search Console, которая делает множество запросов к веб-сайтам. Обратившись к вашему провайдеру, он может решить проблему или предоставить ценную информацию.
Устранение ошибки HTTP 429
Ошибка HTTP 429 является распространенным явлением, но ее можно избежать, если обратить внимание на ограничения скорости, установленные вашим сервером, API, плагином или другими. Если вы превысите эти ограничения, вы можете предпринять шаги для устранения ошибки 429. Поступая таким образом, вы продолжите предоставлять посетителям удобство работы с вашим сайтом.
Источник записи: https://blog.hubspot.com
При взаимодействии с веб-ресурсами можно столкнуться с различными проблемами. Одна их таких проблем – ошибка с кодом 429 Too Many Requests. Существует две самые распространенные причины возникновения этой ошибки сервера, с которыми нам предстоит разобраться самостоятельно.
Причины появления ошибки сервера 429
DDoS-атаки
Начать следует с того, что чаще всего ошибка 429 сопровождается надписью «The user has sent too many requests in a given amount of time», что означает превышение ограничений по запросам к сайту. Соответственно, именно так происходит предотвращение DDoS-атак, которые и являются основной причиной появления рассматриваемой проблемы. Помимо самого кода, вы увидите и несколько других параметров:
-
Общее количество запросов.
-
Запросы с конкретного IP-адреса в секунду.
-
Количество одновременных запросов.
-
Общее количество запросов с одного IP-адреса.
Если же сама ошибка появляется при использовании поисковых систем или сторонних онлайн-сервисов, которые запрашивают доступ к сайту, вполне возможно, что их блокировка осуществляется со стороны хостинга в связи с тем, что количество запросов превышает ограничение. Для ее решения вам потребуется обратиться напрямую в техническую поддержку с просьбой разрешить подобные запросы.
В случае, когда есть уверенность в том, что ошибка http 429 появилась именно из-за атак на ваш ресурс, советую ознакомиться с отдельным материалом, в котором вы узнаете, как обезопасить себя от DDoS эффективными инструментами и банальными мерами предосторожности.
Подробнее: Способы защиты от DDoS-атаки
Некорректная работа плагинов WordPress
Вторая распространенная причина, которая может быть связана с регулярным появлением неполадки 429, – некорректное функционирование плагинов под управлением CMS WordPress. Для решения этой проблемы потребуется выполнить несколько несложных действий.
Для начала по очереди отключайте каждый установленный скрипт через меню управления этими компонентами. Параллельно проверяйте, появляется ли ошибка. Да, на выполнение этой задачи может уйти много времени, однако это самый эффективный метод выявления плагина, который является триггером. Отметим, что сразу несколько компонентов могут вызывать проблему, поэтому постарайтесь проверить их все.
Что касается использования плагинов, то тут всегда лучше подключать только проверенные и качественные решения. Со списком таких плагинов предлагаю ознакомиться в материале по следующей ссылке.
Если после проверки неполадка все еще не исчезла, переключитесь на стандартную тему WordPress, которая называется Twenty Seventeen. Это действие поможет понять, связана ли ошибка сервера 429 со скриптами, которые входят в пользовательский шаблон оформления сайта. В том случае, когда трудность действительно была связана с темой, придется переделать ее вручную или же подыскать новый вариант для своего веб-ресурса.
Действия со стороны обычного пользователя
Обычный пользователь, который сталкивается с неполадкой 429 при попытке просмотреть конкретный сайт, не сможет ничего предпринять самостоятельно, чтобы решить ее. Однако, если есть возможность, стоит обратиться напрямую к владельцу интернет-ресурса или администраторам, сообщив им о появившейся ошибке. Так вы дадите понять, что сайт работает не так, как это нужно, и ускорите процесс решения трудностей.
Ошибка HTTP с кодом 429 – неприятная ситуация, которая может коснуться каждого владельца сайта. Из приведенного выше материала вы поняли, что существует две основные причины, которые могут ее вызывать. Теперь остается только разобраться с каждой из них и провести проверочные работы, чтобы оперативно исправить сложившуюся ситуацию.
Sooner or later, every website runs into a bug or error that’s difficult to troubleshoot. Often, that’s because the error itself doesn’t give you many details. The 429 Too Many Requests error is one such example.
We know what its most common causes are, fortunately. Since there are several potential culprits, however, you’ll often need to try more than one fix before you can resolve it.
In this article, we’re going to talk about what causes the 429 Too Many Requests error and what it looks like. Then we’ll go over five ways you can troubleshoot your website if you ever run into this particular issue. Let’s get to work!
- What is the HTTP 429 Error
- What Causes the 429 Too Many Requests Error
- How to Fix the 429 Too Many Requests Error (5 Methods)
How to Fix 429 Too Many Requests in WordPress:
You’re receiving the 429 Too Many Requests error message because the user has sent too many requests in a given amount of time (could be a plugin, a DDos, or something else). It’s a server telling you to please stop sending requests.
To fix it in WordPress, try one of these 5 methods:
- Change your WordPress default login URL
- Check whether your HTTPS internal links are causing the issue
- Deactivate all your WordPress plugin
- Switch to a default WordPress theme
- Contact your hosting provider
What is the HTTP 429 Error?
The HTTP 429 error is returned when a user has sent too many requests within a short period of time. The 429 status code is intended for use with rate-limiting schemes.
Check Out Our Video Guide to the 429 Too Many Requests Error
What Causes the HTTP 429 Too Many Requests Error
In some cases, when your server detects that a user agent is trying to access a specific page too often in a short period of time, it triggers a rate-limiting feature. The most common example of this is when a user (or an attacker) repeatedly tries to log into your site.
However, your server may also identify users with cookies, rather than by their login credentials. Requests may also be counted on a per-request basis, across your server, or across several servers. So there are a variety of situations that can result in you seeing an error like one of these:
- 429 Too Many Requests
- 429 Error
- HTTP 429
- Error 429 (Too Many Requests)
The error may also include additional details regarding the reason for the 429 status code, and how long the user must wait before attempting to log in again. Here’s an example of what that might look like:
HTTP/1.1 429 Too Many Requests
Content-type: text/html
Retry-After: 3600
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too Many Requests</h1>
<p>I only allow 50 requests per hour to this website per logged in user. Try again soon. </p>
</body>
</html>
Regardless of how the error appears, it always means the same thing – there’s a user or a snippet of code that’s overwhelming your server with too many requests. Sometimes, the problem can go away on its own. In other situations, such as those caused by issues with a plugin or Denial of Service (DDoS) attacks, you’ll need to be proactive in order to resolve the error.
The problem is that the 429 error most often affects your login page, which can make it impossible for you to access your website’s dashboard. That can make fixing it a little tricky, but it’s still achievable if you know what to try.
How to Fix the 429 Too Many Requests Error (5 Methods)
As you might imagine, we deal with a lot of WordPress support requests due to the nature of the services we offer. That means we’re intimately familiar with the 429 error, and its many potential causes.
In the following sections, we’ll cover five of the most common causes we’ve seen for the 429 Too Many Requests error in WordPress. For each potential issue, we’ll also teach you how to go about fixing it, so you can get your site back up and running quickly.
1. Change Your WordPress Default Login URL
Brute-force login attempts are one of the leading causes of the 429 error on WordPress websites. One quick way to prevent attackers from trying to break through your WordPress login page is to change its URL from the default option, so they can’t find it in the first place.
By default, you can find your login page by navigating to yourwebsite.com/wp-admin. That’s pretty easy to remember, but it’s also downright insecure since everyone on the web will know exactly where to access it.
The easiest way to change your default WordPress URL is by using the free WPS Hide Login plugin:
Let’s walk through the process of using this particular tool. You’ll first want to install and activate the plugin just as you would any other, and then navigate to the Settings > WPS Hide Login tab in your WordPress dashboard:
Here, you can easily change your login URL by typing in whatever extension you’d like to use. Make sure to stay away from easy-to-guess options such as login, wp-login, and so on. This would defeat the purpose of changing your URL in the first place, so you’ll want to come up with something unique to your site.
Note that this plugin also enables you to redirect users who try to access your old login URL to another page. For example, the default option will show anyone who tries to visit /wp-admin a 404 error page, so they’ll know they’re looking in the wrong place. When you’re done, remember to save the changes to your settings, and you’ll be good to go.
2. Disable the Really Simple SSL Plugin and Replace Your Internal Links
These days, there’s no good reason you shouldn’t have a Secure Sockets Layer (SSL) certificate set up for your website. Likewise, your entire website should load over HTTPS. This is far more secure than using the older HTTP protocol, and it can even have a positive effect on your site’s Search Engine Optimization (SEO).
When it comes to enforcing HTTPS use, you can either use the manual route – such as an .htaccess redirect – or a plugin. One of the most popular choices is Really Simple SSL:
This plugin’s appeal is that it forces your entire website to load over HTTPS with just a couple of clicks. However, in our experience, it can also lead to occasional bugs. For instance, under some circumstances, it can trigger the 429 error we’ve been talking about.
There’s nothing inherently wrong with this plugin, but it’s definitely not the best way to implement HTTPS use. The problem is that, even if you implement HTTPS manually, you’re still left with the problem of what to do about internal links. Chances are there are a lot of internal links throughout your website, so you’ll need to find a way to replace all of them with their HTTPS versions after disabling the plugin.
First, you’ll want to take care of the plugin itself. If you have access to the WordPress admin area, disabling Really Simple SSL shouldn’t be an issue – just hit Deactivate and you’re done:
However since the 429 Too Many Requests Error often blocks you from accessing your dashboard, you might have to take the manual route and disable the plugin using an FTP client.
Either way, once the Really Simple SSL plugin is gone, the 429 error should be resolved. That means you can access your dashboard to set up a new plugin, which will help you replace all of your internal links in one swoop. That plugin is called Search and Replace:
Go ahead and activate the plugin, then navigate to the Tools > Search & Replace tab in WordPress. Inside, select the wp_postmeta table, and then enter the following parameters alongside the Search for and Replace with fields respectively:
If your site uses a non-www domain:
http://yourwebsiteurl.com
https://yourwebsiteurl.com
In some cases, there may be www instances of your domain in the database as well, so we also recommend running another search and replace with the settings below.
http://www.yourwebsiteurl.com
https://yourwebsiteurl.com
If your site uses a www domain:
http://www.yourwebsiteurl.com
https://www.yourwebsiteurl.com
To replace non-www instances of your domain in the database, run another search and replace with the settings below:
http://www.yourwebsiteurl.com
https://yourwebsiteurl.com
Then select the dry run option, which will let you know how many instances of your HTTP URLs the plugin will replace within your database. After that dry run, execute the plugin for real and it will replace all the necessary links.
Keep in mind that after disabling the Really Simple SSL plugin, you’ll also need to set up a site-wide HTTPS redirect using your .htaccess file. This will enable you to implement HTTPS effectively, without the risk of further 429 errors.
3. Temporarily Deactivate All of Your WordPress Plugins
So far, we’ve focused on a single plugin that may cause the 429 error. However, in practice, any plugin could cause this issue if it makes too many external requests. If neither of the above methods leads to a solution in your case, it may be time to try disabling all of your plugins at once, to ensure that they aren’t the problem.
For this section, we’ll assume you don’t have access to your dashboard and can’t disable plugins the usual way. In that case, you’ll need to access your website via FTP using a client such as Filezilla, and navigate to the public_html/wp-content/ directory.
Inside, there should be several folders, one of which is called plugins:
Right click on that folder, and change its name to something else, such as plugins.deactivated. Once you do that, WordPress won’t be able to ‘find’ any of the plugins, and it will automatically deactivate all of them. However, before you try to access your site again, go ahead and create a new empty folder called plugins, so WordPress will still function as normal.
If the 429 error is gone when you next visit your site, you can assume that one of the plugins you turned off was the culprit. That means you need to narrow down which one caused the problem. To do that, you’ll want to:
- Delete the empty plugins directory you set up a minute ago, and restore the previous folder to its original name.
- Access the plugins directory.
- Rename one of the plugin folders within to anything else, which will deactivate only that specific plugin.
- Try to access your website, and see if the 429 error is gone.
- If the error persists, return that plugin folder to its original name and repeat steps 3 and 4 with the next one.
By moving down your list of active plugins one by one, you should eventually discover which one is the culprit. Once you figure out which plugin is behind the 429 Too Many Requests error, you can delete it altogether, which should fix the issue.
4. Switch to a Default WordPress Theme
If it turns out that a plugin isn’t the cause of your 429 error, it’s possible that your active theme might be at fault. To figure out if that’s the case, you can disable your active theme manually, forcing WordPress to switch to one of the default templates that ships with the CMS.
This process works much the same as disabling plugins manually. You’ll want to launch your trusty FTP client once more, and this time navigate to the public_html/wp-content/themes directory. Once there, look for the folder that corresponds to your active theme and rename it to anything else you want.
If you try to access your website after that, the 429 Too Many Requests error should be gone. You’ll also notice that everything looks quite a bit different. Don’t panic, though, your theme and all of its customizations are still there.
All you need to do is return the theme folder to its original name and activate it once more. If the 429 error returns afterward, then you might need to contact the theme’s developers or consider changing your site’s theme and delete it eventually.
5. Contact Your Host If You Still Can’t Resolve the Error
In some instances, it’s possible that the cause behind the 429 error originated with your server, rather than with your website itself. If this is the case for you, no amount of work on your part will be able to fully resolve the problem.
For example, some web hosts will block requests from specific third-party services or platforms. These can include search engines, crawlers, and other apps (such as Google Search Console) that make large numbers of requests to your website.
Contacting your hosting provider and asking them to allow these requests can solve the issue. Additionally, even if limitations placed on your server by your host aren’t the cause of the problem, they may be able to provide valuable insight and advice that can help you find the correct solution.
Getting the 429 Too Many Requests error message? That’s a bummer but don’t despair, we’ve got you covered with our guide!😭🤗Click to Tweet
Summary
Encountering an error on your website is always frustrating. However, as far as errors go, those with number codes at least give you enough information to start fixing them. If you run into the 429 Too Many Requests error, you’ll know that something is overwhelming your server with too many requests, so it’s only a matter of identifying what the source of the problem is.
If you do happen to experience the 429 error, here are five ways you can go about troubleshooting it:
- Change your default WordPress login URL.
- Disable the Really Simple SSL plugin.
- Temporarily deactivate all of your WordPress plugins.
- Switch to a default WordPress theme.
- Contact your host if you still can’t resolve the error.
Do you have any questions about how to fix the 429 Too Many Requests error in WordPress? Let’s talk about them in the comments section below!
Время на прочтение
2 мин
Количество просмотров 13K
На рассмотрение в IETF поданы спецификации новых кодов состояния HTTP, которые более точно описывают некоторые типичные ситуации.
428 Precondition Required 429 Too Many Requests 431 Request Header Fields Too Large 511 Network Authentication Required
Код состояния 428 (precondition required) означает, что серверу требуются условия выполнения запроса. Это типичная ситуация, когда клиент получает данные по GET, модифицирует их и отправляет назад на сервер через PUT, но к тому времени они уже были модифицированы другим клиентом, из-за чего возникает конфликт. Требуя обусловленного запроса, сервер защищается от возникновения конфликта. При этом обязательно должны быть указаны условия для корректной отправки данных на сервер.
HTTP/1.1 428 Precondition Required
Content-Type: text/html
<html>
<head>
<title>Precondition Required</title>
</head>
<body>
<h1>Precondition Required</h1>
<p>This request is required to be conditional;
try using "If-Match".</p>
</body>
</html>
Код состояния 429 (too many requests) означает, что пользователь отправил слишком много запросов в заданный период времени. Ответ должен содержать объяснение нарушенного условия и может содержать заголовок Retry-After с указанием времени, которое нужно подождать перед повтором.
HTTP/1.1 429 Too Many Requests
Content-Type: text/html
Retry-After: 3600
<html>
<head>
<title>Too Many Requests</title>
</head>
<body>
<h1>Too many Requests</h1>
<p>I only allow 50 requests per hour to this Web site per
logged in user. Try again soon.</p>
</body>
</html>
Код состояния 431 (request header fields too large) используется тогда, когда сервер отказывает в обработке запроса из-за того, что один или несколько заголовков в сумме превышают норму. Во втором случае в ответе должно содержаться указание, какой именно заголовок вызвал проблему.
HTTP/1.1 431 Request Header Fields Too Large
Content-Type: text/html
<html>
<head>
<title>Request Header Fields Too Large</title>
</head>
<body>
<h1>Request Header Fields Too Large</h1>
<p>The "Example" header was too large.</p>
</body>
</html>
Код состояния 511 (network authentication required) означает, что нужно выполнить аутентификацию, при этом в ответе должна содержаться инструкция о том, как это сделать, например, с помощью HTML-формы по указанному адресу. Ошибку 511 возвращает не целевой сервер, а прокси, который не пускает пользователя в сеть (например, маршрутизатор в зоне платного Wi-Fi при неавторизованном доступе).
Например, пользователь отправляет HTTP-запрос по TCP на порт 80.
GET /index.htm HTTP/1.1
Host: www.example.com
Логин-сервер возвращает такой ответ.
HTTP/1.1 511 Network Authentication Required
Refresh: 0; url=https://login.example.net/
Content-Type: text/html
<html>
<head>
<title>Network Authentication Required</title>
</head>
<body>
<p>You need to <a href="https://login.example.net/">
authenticate with the local network</a> in order to get
access.</p>
</body>
</html>
Код ошибки 429 Too Many Requests говорит о том, что пользователь отправлял чересчур много запросов за единицу времени. Возвращаемый сервером ответ содержит пояснение, а также может включать заголовок Retry-After. Этот заголовок указывает на время, которое необходимо подождать, прежде чем повторять запрос.
О чем свидетельствует «код 429»
Причина появления ответа с кодом 429 — большое количество запросов, которые посылают пользователи, но чаще — поисковики, боты или специальные скрипты. Возврат ошибки 429 — это способ предотвращения DDoS-атак. При выдаче ошибки учитываются такие параметры, как:
- количество элементов в запросе;
- количество запросов в секунду с одного IP-адреса;
- количество одновременных запросов с одного IP-адреса (то есть запросов, посылаемых до получения ответа на предыдущий идентичный запрос);
- общее количество одинаковых запросов с IP-адреса.
Что делать пользователю, когда в браузере появляется код ошибки «429 too many requests»
Если такое сообщение появилось явно по ошибке, свяжитесь с технической поддержкой сайта. Зачастую виновником выступает некорректно работающий плагин CMS WordPress. Если вы являетесь владельцем сайта, а ваши пользователи регулярно жалуются на возникновение ошибки 429, для того, чтобы понять, так ли это, отключите все плагины на вашем сайте и проверяйте их работу по очереди.
Причины возникновения кода «429»
Причина практически всегда состоит в том, что сайт пытаются атаковать с помощью DDoS. Изредка возможно возникновение подобной ошибки из-за некорректной работы компонентов сайта.
Вас также может заинтересовать