Aracılığıyla paylaş


REST sorgu önbelleğinde Cache-Control

REST uç noktaları için, Veri API'sinin oluşturucusunun (DAB) istek üst bilgisi ile Cache-Control iç sorgu sonuç önbelleğini nasıl kullandığını etkileyebilirsiniz.

Önemli

Çalışma zamanı yapılandırmasında önbelleğe alma devre dışı bırakılırsa, bu yönergeler yoksayılır ve sorgular normal şekilde çalışır.

Desteklenen Cache-Control değerleri

Değer Davranış
no-cache DAB'yi hem L1 hem de L2 önbelleklerini atlayıp veritabanından yeni verileri almaya ve önbellekleri yeni sonuçla güncelleştirmeye zorlar.
no-store DAB'ye yanıtı hiç önbelleğe almaması gerektiğini bildirir (L1 veya L2'de depolanmaz ve önbellekten getirmeye çalışmaz).

Davranış

  • Yönerge eşleştirme büyük/küçük harfe duyarlı değildir.
  • DAB, max-age veya max-stale gibi diğer standart Cache-Control yönergeleri yorumlamaz.
  • Yalnızca REST sorgu işlemleri için geçerlidir. GraphQL istek düzeyi önbellek yönergeleri için kullanılmaz.
  • Cache-Control isteği HTTP üst bilgisi değerleri hem L1 hem de L2 önbelleğini denetler.

Uyarı

DAB, herhangi bir önbellek işlemi için önbellek denetimi yanıt üst bilgilerini ayarlamaz.

Yönerge: önbellek yok

Yeni bir okuma zorlar ve önbellek katmanlarını güncelleştirir.

İstek

GET /api/Books
Cache-Control: no-cache
Accept: application/json

Yanıt (örnek)

HTTP/1.1 200 OK
Content-Type: application/json

[
  { "id": 1, "title": "The Hobbit" },
  { "id": 2, "title": "The Silmarillion" }
]

Etki: Önbellek artık bu yeni sonucu barındırır (yapılandırılmış TTL'ye tabidir).

Yönerge: depo yok

Varsa mevcut bir önbelleğe alınmış değeri kullanır; aksi takdirde veritabanını sorgular ancak önbelleği yeni sonuçla doldurmaz (veya yenilemez).

İstek

GET /api/Books
Cache-Control: no-store
Accept: application/json

Yanıt (örnek)

HTTP/1.1 200 OK
Content-Type: application/json

[
  { "id": 1, "title": "The Hobbit" },
  { "id": 2, "title": "The Silmarillion" }
]

Etki: Bu sonuç önceden önbelleğe alınmadıysa depolanmaz. Daha önceki bir istek önbelleği doldurmadıysa sonraki only-if-cached bir istek başarısız olabilir.

İnceleme

  • Veritabanından yenilemeye zorlamanız ve önbelleği güncelleştirmeniz gerektiğinde kullanın no-cache .
  • Verileri istediğinizde ancak bu yanıtın önbelleği değiştirmesini istemediğinizde kullanın no-store (ancak mevcut bir önbelleğe alınmış değeri okuyabilir).
  • Normal önbelleğe alma davranışı için üst bilgiyi atla.