امروز : ۱۰ خرداد ۱۴۰۵ (2026/05/31)

آموزش رفع خطای 429 too many requests

یکی از خطا های رایجی که کاربران اینترنت ممکن است با آن رو به رو شوند خطای 429 Too Many Requests می باشد!

این خطا در دنیای وب و API ها عموما زیاد رخ می دهد و علت آن هم همانطور که از نام آن مشخص هست مربوط به تعداد درخواست های بالایی هست که از سمت کاربر یا سیستم ارسال می شود و بیش از حد مجاز تعیین شده در سرور مقصد می باشد.

این خطا در واقع بخشی از مکانیزم Rate Limiting می باشد که برای جلوگیری از فشار بیش از حد به سرور و حفظ پایداری سرویس ها طراحی شده است!

اگر این خطا نباشد و تعداد درخواست ها با سرعت زیاد بدون هیچ محدودیتی وارد سرور شوند طبیعی هست که باعث قطع شدن سرور و پر شدن تمام منابع شامل رم و سی پیو خواهد شد و حتی اگر این درخواست ها شامل درخواست های read و write در هارد باشد می تواند به سلامت هارد آسیب وارد کند.

به بیان ساده تر، وقتی این خطا نمایش داده می‌ شود، سرور در حال اعلام این موضوع است که درخواست‌های شما بیش از حد سریع یا زیاد هستند، لطفاً کمی صبر کنید! این موضوع نه‌ تنها در وب‌سایت‌ ها، بلکه در API ها، ربات‌ ها، اسکریپت‌ ها و حتی استفاده عادی کاربران نیز ممکن است رخ دهد.

در سال‌ های اخیر با افزایش استفاده از سرویس‌ های آنلاین، اپلیکیشن‌ های مبتنی بر API و اتوماسیون، مواجهه با این خطا بیشتر از گذشته شده است. به‌ویژه توسعه‌ دهندگان، مدیران سایت‌ ها و حتی کاربران عادی ممکن است در شرایط مختلف با ارور 429 رو به‌ رو شوند، بدون اینکه دقیقا بدانند علت آن چیست.

شناخت دقیق این خطا و دلایل بروز آن اهمیت زیادی دارد، زیرا در صورت نادیده گرفتن، می‌تواند باعث اختلال در عملکرد سایت، کاهش تجربه کاربری و حتی از دست رفتن بخشی از ترافیک شود. در ادامه این مقاله، به بررسی دلایل اصلی بروز ارور 429 و همچنین راهکار های کاربردی برای رفع و جلوگیری از آن می‌ پردازیم.

 

 

 

 

وب سرور های مختلف، سیستم عامل ها و مرورگر ها شیوه نمایش گوناگونی برای نمایش خطاها دارند. خطا ۴۲۹ نیز به شکل های مختلفی نمایان خواهد شد که انواع متداول آن به شرح زیر است :

 

 

429 Error

Error 429 (Too Many Requests)

429 Too Many Requests

Too Many Requests

HTTP 429

 

 

 

دلایل زیادی وجود دارد که باعث می شود این خطا رخ دهد اما اگر بخواهیم به صورت خلاصه به مهمترین علت های آن بپردازیم باید بگوییم:

 

1- Rate Limiting یا همان محدودیت نرخ درخواست:

محدودیت نرخ درخواست یا همانطور که گفتیم به اصطلاح Rate Limiting یکی از روش های معمول و درستی هست که سرور ها برای کنترل ترافیک ورودی از آن استفاده می کنند.

در این روش سرور تعداد مشخصی از درخواست ها را برای هر کاربر، IP یا توکن API در یک بازه زمانی مشخص مجاز می داند! اگر تعداد درخواست ها از این تعداد در آن بازه زمانی مشخص برای هر مثال هر ثانیه یا دقیقه عبور کند خطای 429 too many requests رخ خواهد داد!

این روش همانطور که گفته شد برای جلوگیری از فشار بیش از حد روی منابع سرور بسیار کاربری می باشد و باعث می شود عملکرد سرویس برای سایر کاربران با اختلال رو به رو نشود! 

همچنین نباید فراموش کرد Rate Limiting نقش مهمی در افزایش امنیت هم دارد چون جلوی حملاتی مانند Brute-force را می گیرد.

در بسیاری از سرویس‌ ها، این محدودیت‌ ها به‌صورت دقیق تعریف شده‌ اند برای مثال ممکن است یک API فقط اجازه 100 درخواست در هر دقیقه را بدهد. در چنین شرایطی، اگر برنامه یا کاربر این محدودیت را رعایت نکند، به‌ سرعت با خطای 429 مواجه خواهد شد.

اگر کاربر یا اسکریپت، پشت سر هم درخواست‌ های زیادی ارسال کند مثلا رفرش مداوم صفحه، سرور آن را به‌عنوان رفتار غیر عادی تشخیص می‌ دهد.

این مشکل فقط به کاربران عادی محدود نمی‌شود و در بسیاری از موارد، ربات‌ ها، ابزار های تست، یا حتی کدنویسی نادرست مثلاً حلقه‌ های تکرار بدون تاخیر باعث ایجاد حجم بالایی از درخواست‌ ها در مدت زمان کوتاه می‌ شوند. این موضوع می‌تواند منابع سرور مانند CPU و پهنای باند را درگیر کرده و عملکرد کلی سایت را تحت تاثیر قرار دهد.

به همین دلیل، سرورها به‌ صورت خودکار چنین رفتارهایی را کنترل می‌ کنند و با نمایش ارور 429، از ادامه این روند جلوگیری می‌ کنند.

 

2- استفاده از ربات‌ ها و اسکریپت‌ ها:

یکی دیگر از دلایل رایجی که باعث بروز این خطا می شود استفاده از ربات ها و اسکریپت هایی هست که برای ارسال درخواست به سرور یا جمع آوری داده و همچنین بررسی وضعیت سایت ساخته می شوند.

این اسکریپت ها و ربات ها اگر به درستی تنظیم نشوند می توانند درخواست های بسیار بالایی را در مدت زمان کوتاه به سرور یا API مقصد ارسال کنند و خیلی سریع از محدودیت نرخ درخواست عبور کنند و باعث بروز خطای 429 too many requests شوند.

این را باید در نظر داشته باشید که ربات ها قادرند با سرعت زیاد و بدون وقفه درخواست ارسال کنند و همین موضوع فشار زیادی را به سرور مقصد وارد می کند! به همین دلیل سرور ها عموما رفتار ربات ها را به دقت بررسی می کنند و با قوانین سخت گیرانه ای که عموما دارند دسترسی آن ها را محدود می کنند و جلوی فعالیت را می گیرند.

در چنین شرایطی، اگر یک ربات یا اسکریپت بدون در نظر گرفتن محدودیت‌ ها فعالیت کند، به‌سرعت با ارور 429 مواجه خواهد شد. این اتفاق معمولا زمانی رخ می‌ دهد که بین درخواست‌ ها هیچ تاخیری در نظر گرفته نشده یا تعداد درخواست‌ ها بیش از حد مجاز باشد.

 

3- محدودیت‌های API:

یکی دیگر از دلایلی دیگری که باعث این خطا می شود این است که خود API ها محدودیت هایی را در نظر میگیرند تا تعداد درخواست مشخصی را پاسخ دهند.

API ها به ویژه نسخه های رایگان یا عمومی برای مدیریت منابع و جلوگیری از درخواست های بیش از حد و سواستفاده های احتمالی سقف مشخصی برای تعداد درخواست ها در نظر می گیرند این محدودیت ها ممکن است به صورت تعداد درخواست در ثانیه، دقیقه یا حتی روزانه تعریف می شود.

برای مثال، یک API ممکن است اجازه دهد تنها 1000 درخواست در روز یا 60 درخواست در دقیقه ارسال شود. در صورتی که این حد مجاز رعایت نشود، سرور به‌ طور خودکار درخواست‌ های اضافی را رد کرده و ارور 429 را برمی‌ گرداند. این موضوع به‌خصوص در اپلیکیشن‌ هایی که به‌ صورت مداوم با API در ارتباط هستند، بسیار رایج است.

همچنین در برخی API ها محدودیت ها بسته به نوع پلن که رایگان یا پولی هست متفاوت هست و کاربران با ارتقای پلن خود می توانند سقف درخواست بیشتری داشته باشند و بنابراین عدم آگاهی از وجود این محدودیت ها یا مدیریت اشتباه درخواست ها به سادگی باعث بروز این خطا می شود.

برای جلوگیری از این مشکل، بهتر است مستندات API به‌ دقت بررسی شود، تعداد درخواست‌ ها مدیریت گردد و در صورت نیاز از تکنیک‌ هایی مانند کش کردن داده‌ ها یا کاهش درخواست‌ های غیرضروری استفاده شود تا از رسیدن به سقف مجاز جلوگیری شود.

 

4- تنظیمات اشتباه در سایت یا افزونه‌ ها:

در موارد دیگر علت بروز این خطا بخاطر رفتار کاربر نیست بلکه تنظیمات نادرست در خود سایت یا افزونه ها باعث بروز این خطا می شود.

برخی افزونه ها یا اسکریپت هایی مانند وردپرس ممکن است به صورت خودکار در بازه زمانی های کوتاه، درخواست های متعددی به سرور ارسال می کنند برای مثال درخواست های مکرر AJAX یا بررسی بروزرسانی ها و ارتباط مداوم با API های خارجی!

اگر این درخواست‌ ها به‌ درستی بهینه‌ سازی نشده باشند، می‌ توانند بدون اینکه مدیر سایت متوجه شود، حجم زیادی از ترافیک داخلی ایجاد کنند. در نتیجه، سرور این رفتار را مشابه یک حمله یا فعالیت غیرعادی در نظر گرفته و با اعمال محدودیت، ارور 429 را نمایش می‌ دهد.

همچنین تداخل بین افزونه‌ ها یا استفاده از افزونه‌ های غیراستاندارد نیز می‌تواند باعث ایجاد درخواست‌ های اضافی شود. در برخی موارد حتی تنظیمات اشتباه در قالب سایت یا کدنویسی ضعیف، منجر به ارسال درخواست‌ های تکراری و غیرضروری می‌ شود.

 

راهکارهای رفع ارور 429 Too Many Requests:

در بالا مواردی که عموما باعث بروز این خطا می شود را خدمت شما عرض کردیم در این بخش می خواهیم راهکارهایی که جلوی بروز این خطا را می گیرد را توضیح دهیم.

 

1- کاهش تعداد درخواست ها:

اولین و ابتدایی ترین راهکاری که می تواند جلوی این خطا را بگیرد این است که تعداد درخواست ها را کاهش دهید!

این ساده ترین روش برای جلوگیری از خطای 429 می باشد. 

این خطا همانطور که گفته شد بخاطر تعداد درخواست های بالا در بازه زمانی تعیین شده هست که وقتی از سقف تعداد تعیین شده عبور می کند باعث خطا خواهد شد! طبیعی هست اگر شما تعداد درخواست های خود را به سرور یا API تا جای ممکن کاهش دهید اصلا با این خطا رو به رو نخواهید شد.

برای این کار باید درخواست‌ های غیرضروری یا تکراری حذف شوند. همچنین بهتر است از ارسال مداوم درخواست‌ هایی مثل رفرش صفحه یا فراخوانی‌ های بی‌ وقفه API جلوگیری شود. در کدنویسی نیز باید از حلقه‌ های بدون تاخیر یا اجرای هم‌ زمان بیش از حد درخواست‌ ها پرهیز کرد.

یکی از موارد دیگری که بسیار در جلوگیری از این خطا کمک کننده هست بررسی هدر Retry-After می باشد. 

این هدر مشخص می کند کاربر باید چه مدت صبر کند تا دوباره درخواست ارسال کند. این مقدار می تواند به صورت چند ثانیه یا یک زمان مشخص مانند تاریخ و ساعت باشد!

اگر این هدر در پاسخ وجود داشته باشد، یعنی سرور به‌ طور موقت درخواست‌ های جدید را محدود کرده است. در این حالت، ارسال درخواست قبل از زمان تعیین‌ شده می‌تواند دوباره باعث دریافت ارور 429 شود.

در برنامه‌ نویسی حرفه‌ ای معمولا این مقدار خوانده می‌ شود و سیستم بر اساس آن، زمان ارسال درخواست بعدی را تنظیم می‌ کند. این کار باعث هماهنگی بهتر با سرور و جلوگیری از فشار اضافی می‌ شود.

در نتیجه، رعایت مقدار Retry-After یک روش ساده و مهم برای مدیریت درست درخواست‌ ها و کاهش خطای 429 است.

 

استفاده از صف درخواست یکی از روش های حرفه ای تر برای کنترل و مدیریت تعداد درخواست های ارسالی به سرور می باشد.

در این روش به جای اینکه درخواست ها پشت سرهم و همزمان ارسال شوند داخل یک صف قرار می گیرند و به ترتیب مشخص و کنترل شده پردازش می شوند.

این کار باعث می شود فشار ناگهانی به سرور وارد نشود و نرخ درخواست ها در یک سطح ثابت باقی بماند و احتمال اینکه به خطای 429 برسید به طور قابل توجهی کاهش پیدا کند.

صف ها بیشتر در سیستم های بزرگ و API هایی با ترافیک بالا استفاده می شود تا درخواست ها ساده تر پردازش شوند.

 

اگر مدیر سرور هستید و سرور شما از نظر منابع سخت افزاری قدرتمند می باشد بهتر است محدودیت های تعداد درخواست را کاهش دهید تا درخواست های بیشتری به سرور ارسال شوند و کمتر خطای 429 مشاهده شود.

این کار معمولا در تنظیمات سرور یا فایروال انجام می شود. البته مجدد این نکته ذکر می شود که افزایش بیش از حد محدودیت ها می تواند باعث فشار شدید روی منابع سرور و کاهش پایداری سیستم شود.

به همین دلیل، این روش بیشتر زمانی استفاده می‌ شود که ترافیک واقعی کاربران بالا باشد یا سرویس نیاز به پردازش درخواست‌ های بیشتری داشته باشد. در غیر این صورت، بهتر است بهینه‌ سازی و کنترل درخواست‌ ها در اولویت قرار گیرد.

در نتیجه، افزایش محدودیت‌ ها باید به‌ صورت کنترل‌ شده انجام شود تا هم عملکرد سیستم حفظ شود و هم از بروز ارور 429 جلوگیری گردد.

 

یکی دیگر از روش هایی که باعث می شود خطای 429 too many requests مشاهده نشود تغییر ای پی می باشد!

در بیشتر موارد محدودیت های اعمال شده روی ای پی و تعداد درخواست هر ای پی می باشد! بنابراین اگر یک IP بیش از حد مجاز درخواست ارسال کند، به‌طور موقت بلاک می‌ شود و خطای 429 نمایش داده می‌ شود.

در چنین شرایطی، تغییر IP می‌ تواند باعث شود درخواست‌ ها از یک آدرس جدید ارسال شوند و محدودیت قبلی دیگر اعمال نشود. همچنین استفاده از پروکسی‌ ها یا VPN ها در برخی سناریو ها برای توزیع درخواست‌ ها بین چند IP مختلف به کار می‌ رود.

البته این روش همیشه راهکار اصولی محسوب نمی‌ شود و اگر مشکل اصلی (مثل ارسال درخواست زیاد یا تنظیمات اشتباه) برطرف نشود، خطا دوباره تکرار خواهد شد.

 

حل خطای 429 too many requests در وردپرس:

این خطا در وردپرس همانطور که گفته شد به دلیل ارسال درخواست های زیاد از سمت افزونه، قالب یا حتی خود سرور رخ می دهد.

در بسیاری از مواقع، افزونه‌ های امنیتی، کش یا افزونه‌ های مرتبط با API بیشترین نقش را در ایجاد این خطا دارند. همچنین ممکن است یک افزونه به‌ درستی بهینه نشده باشد و در پس‌ زمینه درخواست‌ های مکرر ارسال کند.

بروزرسانی قالب و افزونه‌ ها نیز اهمیت زیادی دارد، چون نسخه‌ های قدیمی ممکن است با سرور هماهنگ نباشند و باعث افزایش درخواست‌ ها شوند.

در کنار این موارد، بررسی هاست و محدودیت‌ های سرور هم ضروری است؛ زیرا برخی سرویس‌ های هاستینگ به‌صورت پیش‌ فرض محدودیت سخت‌ گیرانه‌ ای روی درخواست‌ ها اعمال می‌ کنند.

در نهایت، استفاده از کش، بهینه‌ سازی سایت و در صورت نیاز ارتقای هاست می‌تواند به شکل قابل توجهی این خطا را در وردپرس کاهش دهد.

و برای حل کردن این خطا در وردپرس از اقدامات زیر می توانید استفاده کنید:

 

1- بررسی افزونه ها:

چنانچه با این خطا مواجه شده اید، افزونه ها را غیر فعال کنید و سایت را مجددا بارگذاری کنید. اگر خطا برطرف شد، پس مشکل از افزونه بوده است.

برای غیر فعال سازی افزونه ها ابتدا با استفاده از این آموزش وارد سی پنل شوید. سپس به مسیر نصب افزونه ها بروید.

افزونه ها عموما در مسیر wp-content/plugins هستند. پوشه را تغییر نام دهید و سپس سایت را مجددا بارگذاری کنید.

اگر سایت بدون مشکل باز شد، نام پوشه را به حالت قبل بازگردانید و این بار تک به تک پوشه هر افزونه را تغییر نام دهید تا در نهایت افزونه ای که باعث ایجاد این مشکل شده است را پیدا کنید.

در ادامه می توانید آن را بروز رسانی کرده یا از افزونه ای مشابه استفاده کنید.

 

2- بررسی قالب:

به عنوان گام بعدی باید قالب را بررسی کنید.

به مسیر wp-content/themes از هاست مراجعه کنید و پوشه ای که مربوط به قالب فعلی سایت است را تغییر نام دهید تا وردپرس به صورت قالب پیشفرض بارگزاری شود. البته باید قالب پیشفرض در پوشه themes وجود داشته باشد و آن را حذف نکرده باشید.

اگر با انجام این کار خطا سایت رفع شد، معلوم می شود که مشکل از قالب و ناسازگاری آن بوده است و در صورتی که به همین قالب نیاز دارید بهتر است با پشتیبانی قالب تماس گرفته و موضوع را مطرح کنید.

در سایر موارد عموما خطا too many requests ۴۲۹ به صورت موقت ظاهر شده است و چنانچه در زمان دیگری سایت را بررسی کنید مشکل رفع می شود و می توانید به آن دسترسی داشته باشید.

 

امیدواریم این آموزش مورد توجه شما قرار گرفته باشد.

 

5/5 - (8 امتیاز)