Retry-After başlığı, bir istemciye takip eden bir isteği yapmadan önce ne kadar beklemesi gerektiğini bildiren bir HTTP yanıt başlığıdır. Bir sunucu, bunu 429 Çok Fazla İstek yanıtında, oran sınırlaması için durum kodu olarak dahil edebilir. Bir scraper için, bu değere saygı göstermek, sunucunun istediği süre boyunca duraklamak anlamına gelir; tahminde bulunmak ve daha fazla engellenmiş istek riski taşımak yerine.

Başlık isteğe bağlıdır, bu nedenle bir 429 yanıtı bununla gelmeyebilir. RFC 6585 ayrıca bir sunucunun kullanıcıyı nasıl tanımladığını veya istekleri nasıl saydığını tanımlamaz. Bir limit, yalnızca bir IP adresine değil, oturum açma kimlik bilgilerine veya bir çereze bağlı olabilir.

Retry-After Değer Formatları

  • Saniye cinsinden gecikme: Retry-After: 120 gibi negatif olmayan bir tam sayı.
  • HTTP tarihi: Yeniden denemek için bir tarih, örneğin Retry-After: Wed, 21 Oct 2015 07:28:00 GMT.
  • Nerede görünür: 429 yanıtları ile, kesintinin ne kadar süreceğini göstermek için 503 Hizmet Kullanılamıyor ile ve en az bekleme süresini ayarlamak için 301 gibi yönlendirmelerde.

Diğer Oran Sınırlama Başlıkları

  • Satıcı başlıkları: Bazı API'ler kendi alanlarını ekler. Örneğin, GitHub'ın REST API'si x-ratelimit-limit, x-ratelimit-remaining, x-ratelimit-used ve x-ratelimit-reset gönderir.
  • Önerilen standart: Bir IETF Internet-Draft, sunucuların kota politikalarını ve kalan kotayı duyurabilmesi için RateLimit ve RateLimit-Policy alanlarını tanımlar. Hala bir taslaktır, yayımlanmış bir RFC değildir.
  • Yeniden deneme mantığı: GitHub, mevcut olduğunda retry-after içindeki saniye sayısı kadar beklemeyi önerir ve istekler sürekli başarısız olursa beklemeyi üssel olarak artırmayı önerir.

Retry-After'ı Kim Saygı Gösterir

  • Destek değişkenliği: MDN, istemci ve sunucu desteğinin Retry-After için hala tutarsız olduğunu belirtmektedir.
  • Arama tarayıcıları: Googlebot gibi bazı tarayıcılar buna saygı gösterir. Google, bir sitenin, tarayıcısına ne zaman yeniden denemesi gerektiğini bildirmek için 503 veya 429 yanıtıyla Retry-After gönderebileceğini söyler.
  • Kısa tutun: Google, 500, 503 veya 429 sunmanın taramayı 1-2 günden fazla yavaşlatılmasına karşı tavsiyede bulunur. Googlebot, aynı URL'de birkaç gün boyunca bu kodları görürse, o URL'yi dizininden çıkarabilir.

İlgili Terimler