همه چیز درباره ی Header Retry-After در HTTP

http headers retry after
20 آبان 1403

در دنیای برنامه‌نویسی وب و HTTP، header ها نقش بسیار مهمی ایفا می‌کنند و هر یک کارکرد خاصی دارند. یکی از header های جالب توجه و البته کاربردی، "Retry-After" است که معمولاً در پاسخ‌های HTTP که شامل کدهای 503 (Service Unavailable) یا 429 (Too Many Requests) هستند، دیده می‌شود. اما این header دقیقاً چه کاری انجام می‌دهد؟

به زبان ساده، وقتی یک سرور نمی‌تواند به درخواست‌ها پاسخ دهد، معمولاً از header "Retry-After" برای اعلام زمانی استفاده می‌کند که بعد از آن کلاینت می‌تواند دوباره درخواست خود را ارسال کند. این موضوع هم به نظم سرور و هم به کاهش بار غیرضروری کمک می‌کند.

در header "Retry-After" می‌توان هم از تاریخ و زمان خاصی استفاده کرد و هم از یک زمان‌بندی مشخص به ثانیه. این موضوع به مدیران سرور انعطاف می‌دهد تا نظم بیشتری در مدیریت درخواست‌ها داشته باشند.

در بسیاری از سناریوها، استفاده از "Retry-After" تنها جنبه‌ی اختیاری دارد و کلاینت می‌تواند در صورت عدم وجود این header، خودش تعیین کند که چه زمانی دوباره درخواست را ارسال کند. اما در صورتی که این header وجود داشته باشد، کلاینت‌ها می‌توانند از آن به عنوان یک راهنمای دقیق استفاده کنند.

بیایید به یک مثال کد برای بهبود درک موضوع نگاه کنیم:


HTTP/1.1 503 Service Unavailable
Retry-After: 120

در این مثال، سرور اعلام کرده که خدمات موقتاً در دسترس نیست و کلاینت می‌تواند پس از 120 ثانیه دوباره تلاش کند.

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

HTTP/1.1 503 Service Unavailable

این خط به معنای این است که درخواست با خطای 503 روبرو شده و خدمات موقتاً در دسترس نیست.

Retry-After: 120

این خط می‌گوید که کلاینت باید 120 ثانیه صبر کند و سپس درخواست خود را دوباره ارسال کند.

سوالات متداول

؟

چرا از header Retry-After استفاده می‌شود؟

؟

آیا همیشه باید از Retry-After استفاده کنیم؟

؟

چه زمانی باید از تاریخ و چه زمانی باید از زمان‌بندی ثانیه در Retry-After استفاده کرد؟