محتوای آموزشی وبلاگ نتآرام
خطای 429 Too Many Requests یعنی بخشی از مسیر، تعداد درخواستها را برای یک بازه بیش از حد مجاز تشخیص داده است. مثل درِ ورودی فروشگاهی است که برای چند لحظه از ورود پیدرپی جلوگیری میکند. این پاسخ لزوماً نشان نمیدهد سایت خراب است یا بازدید شما واقعاً زیاد شده؛ ممکن است یک افزونه، برنامه یا چند کاربر با یک IP مشترک به محدودیت رسیده باشند.
اگر بازدیدکننده سایت هستید
صفحه را پشت سر هم تازهسازی نکنید. چند دقیقه صبر کنید و یک بار دیگر امتحان کنید. اگر برای یک خرید یا پرداخت خطا گرفتهاید، اول وضعیت سفارش را ببینید؛ ممکن است درخواست قبلی ثبت شده باشد. ادامه مشکل را با نشانی صفحه و ساعت به پشتیبانی سایت اطلاع دهید. از فرستادن رمز و اطلاعات کارت در پیام خودداری کنید.
اگر مدیر سایت هستید، پاسخ را ثبت کنید
نشانی دقیق و زمان خطا، نوع کاری که انجام میشده و اینکه خطا برای همه کاربران یا فقط یک شبکه رخ میدهد را یادداشت کنید. اگر صفحه خطا نام یک CDN، افزونه امنیتی یا سرویس واسط را نشان میدهد، آن را هم ثبت کنید؛ ظاهر صفحه یک سرنخ است و جای بررسی گزارش همان سرویس را نمیگیرد.
برای دیدن سرآیندهای یک صفحه عمومی میتوانید دستور زیر را یک بار اجرا کنید:
کد / دستورcurl -sSI https://example.com/
آدرس نمونه را با صفحه خودتان جایگزین کنید. اگر پاسخ شامل
Retry-After باشد، ممکن است مدت انتظار به ثانیه یا یک تاریخ را نشان دهد. نبود این سرآیند به معنی بیوجود بودن محدودیت نیست. این دستور درخواست HEAD میفرستد؛ پاسخ آن ممکن است با درخواست واقعی GET یا POST متفاوت باشد، پس نتیجه را در کنار گزارش همان عملیات بسنجید.منبع درخواستهای زیاد را پیدا کنید
در گزارش ابزار امنیتی، CDN یا وبسرور، بازه خطا و مسیر پرتکرار را پیدا کنید. اگر یک افزونه در هر ثانیه چند بار سرویس بیرونی را صدا میزند، تنظیم فاصله زمانی یا تعداد فراخوانی آن را بررسی کنید. در برنامهای که خودتان نوشتهاید، پس از 429 طبق
Retry-After صبر کنید و برای تلاش دوباره فاصله افزایشی بگذارید؛ درخواست مداوم و سریع معمولاً مشکل را طولانیتر میکند.اگر کاربرانی از یک شبکه مشترک استفاده میکنند، یک محدودیت صرفاً مبتنی بر IP ممکن است درخواستهای چند نفر را با هم بشمارد. پیش از تغییر قانون، تعداد درخواست طبیعی و آدرس دقیق مورد استفاده را بررسی کنید. سپس آستانه یا بازه را برای همان مسیر و متناسب با نیاز تنظیم کنید. پاک کردن همه قوانین امنیتی یا قراردادن همه آدرسها در فهرست مجاز میتواند سایت را بیدفاع کند.
یک مثال از Retry-After
اگر پاسخ یک سرویس هدر
Retry-After: 60 داشته باشد، این عدد یعنی دستکم ۶۰ ثانیه برای تلاش بعدی صبر کنید؛ تاریخ هم ممکن است به جای عدد برگردد. در برنامه خود فاصله تلاش مجدد را محدود و افزایشی کنید و نتیجه هر بار را ثبت کنید. بعد از تغییر، یک درخواست آزمایشی عادی بفرستید؛ اگر دوباره 429 آمد، هدر تازه و سقف حساب را ببینید. برای تراکنش خرید، قبل از هر تلاش دوباره مطمئن شوید درخواست اول انجام نشده و سرویس راه جلوگیری از ثبت تکراری دارد.نتیجه را اندازه بگیرید
پس از اصلاح تنظیمات افزونه یا قانون، همان عملیات را با تعداد طبیعی درخواست امتحان کنید و نمودار خطا را در بازه بعدی ببینید. اگر محدودیت از سرویس بیرونی است، سهمیه حساب و راهنمای همان سرویس را بررسی کنید؛ افزایش منابع سرور شما به تنهایی سهمیه آن سرویس را تغییر نمیدهد.
منبع: معنی پاسخ 429 در مستندات MDN.
برچسبها:
اشتراکگذاری:
لینکدینتلگرامایکس
مقاله قبلی
مقاله بعدی
دیدگاهها (۰)
دیدگاههای تاییدشده و پاسخهای تیم نتآرام
