HTTP yanıt başlıkları desteği

Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin.
info

Bu konuda, ResponseCache politikasını kullanırken Edge'in HTTP/1.1 önbelleğe alma üstbilgilerini nasıl işlediği açıklanmaktadır. Apigee Edge şu anda arka uç hedef (kaynak) sunucularından alınan HTTP/1.1 önbelleğe alma üstbilgilerinin ve yönergelerinin bir alt kümesini (desteklenmeyen özellikler bu konuda listelenir) desteklemektedir.

Ayrıca Edge, belirli üstbilgilerde talimatlarına göre işlem yapar. Bazı durumlarda bu HTTP/1.1 önbellek üst bilgileri, ResponseCache politikasında belirtilen davranışı geçersiz kılar. Örneğin, Cache-Control üstbilgisi bir arka uç sunucudan döndürülürse üstbilginin s-maxage yönergesinin, politikadaki diğer süre sonu ayarlarını geçersiz kılmasını sağlayabilirsiniz.

Başlık Destek
Cache-Control Arka uç kaynak sunucularından döndürülen yanıtlarda desteklenir ancak istemci isteklerinde desteklenmez. Edge, talimatların bir alt kümesini destekler.
Son geçerlilik tarihi Desteklenir. Geçersiz kılınabilir.
Öğe Etiketleri (ETags) If-Match ve If-None-Match için özel davranış.
If-Modified-Since GET isteklerinde, geçerli bir önbellek girişi olsa bile üstbilgi, kaynak sunucuya iletilir.
Accept-Encoding Edge, gelen üstbilgilere bağlı olarak sıkıştırılmış veya sıkıştırılmamış yanıtlar gönderir.

Önbellek-Denetimi

Apigee Edge, Cache-Control üst bilgisini yalnızca arka uç kaynak sunucularından döndürülen yanıtlarda destekler (HTTP/1.1 spesifikasyonu, hem istemci isteklerinde hem de kaynak sunucu yanıtlarında Cache-Control üst bilgilerine izin verir). Kaynak sunucular hem Apigee Edge API proxy'sinde tanımlanan hem de TargetServer API çağrıları kullanılarak oluşturulan hedef uç noktalarını içerebilir.

Önbellek-Denetimi desteğiyle ilgili sınırlamalar

Apigee Edge, HTTP/1.1 spesifikasyonunda tanımlanan Cache-Control yanıt başlığı özelliklerinin bir alt kümesini destekler. Önemli:

  • Apigee Edge, gelen istemci istekleriyle gelen Cache-Control başlıklarını desteklemez.
  • Apigee Edge yalnızca herkese açık önbellekleri destekler. (HTTP spesifikasyonuna göre Cache-Control herkese açık (paylaşılan) veya gizli (tek kullanıcılı) olabilir.)
  • Apigee Edge, HTTP/1.1 spesifikasyonundaki Cache-Control yanıt yönergelerinin yalnızca bir alt kümesini destekler. Ayrıntılar için Cache-Control yanıt başlığı talimatları için destek bölümüne bakın.

Cache-Control yanıt üstbilgisi talimatları desteği

Apigee, kaynak sunuculardan gelen yanıtlarla ilgili HTTP/1.1 spesifikasyonundaki bir alt küme talimatlarını destekler. Aşağıdaki tabloda, HTTP Cache-Control yanıt başlığı yönergeleri için Apigee Edge desteği açıklanmaktadır.

Burada listelenen talimatlar hakkında daha ayrıntılı bilgi için HTTP/1.1 spesifikasyonundaki Cache-Control bölümüne bakın.

Cache-Control talimatı Apigee Edge'in talimatı işleme şekli
cache-extension Desteklenmiyor.
max-age

ResponseCache politikanız <UseResponseCacheHeaders> öğesini true olarak ayarlarsa yanıt, bu yönerge tarafından belirtilen saniye sayısı kadar süreyle önbelleğe alınabilir.

Bu yönerge, s-maxage yönergesi tarafından geçersiz kılınır ve Expires üstbilgisini geçersiz kılar. Ayrıca politikanın <ExpirySettings> öğesi tarafından da geçersiz kılınabilir. Daha fazla bilgi için Yanıt Önbelleği Politikası'ndaki "Önbellek girişinin geçerlilik süresini ayarlama" ve <UseResponseCacheHeaders> bölümüne bakın.

must-revalidate Desteklenmiyor. Tüm önbellek girişleri, süresi dolduktan hemen sonra Apigee Edge tarafından silinir.
no-cache

Edge, kaynak yanıtını önbelleğe alır ancak sonraki istemci isteklerini karşılamak için kullanılmadan önce kaynak sunucuda yeniden doğrulanmalıdır. Bu kural, kaynağın yanıtın önbellekten döndürülmesi gerektiğini belirtmek için 304 Değişiklik Yok yanıtı döndürmesine olanak tanır. Böylece, yanıtın tamamının döndürülmesi için gereken işlemden tasarruf edilir. Kaynak sunucu tam yanıt döndürürse mevcut önbellek girişi değiştirilir. Bu yönergeyle belirtilen tüm alan adları yok sayılır.

no-store Desteklenmiyor.
no-transform Desteklenmiyor.
private Desteklenmiyor. Bu yönerge alınırsa kaynak yanıtı önbelleğe alınmaz. Alan adları yoksayılır.
proxy-revalidate Desteklenmiyor. Tüm önbellek girişleri, süresi dolduktan hemen sonra Apigee Edge tarafından silinir.
public Edge, diğer yönergeler aksini belirtse bile kaynak yanıtını önbelleğe alır. HTTP/1.1 spesifikasyonuna göre bu kuralın tek istisnası, yanıtın bir Authorization üst bilgisi içermesidir.
s-maxage

ResponseCache politikanız <UseResponseCacheHeaders> öğesini true olarak ayarlarsa yanıt, bu yönerge tarafından belirtilen saniye sayısı kadar süreyle önbelleğe alınabilir.

Bu yönerge, max-age yönergesini ve Expires başlığını geçersiz kılar. Politikanın <ExpirySettings> öğesi tarafından geçersiz kılınabilir. Daha fazla bilgi için Yanıt Önbelleği Politikası'ndaki "Önbellek girişi süresinin sonunu ayarlama" ve <UseResponseCacheHeaders> bölümüne bakın.

Geçerlilik bitiş tarihi

ResponseCache politikasındaki UseResponseCacheHeaders işaretçisi true olarak ayarlandığında Edge, önbelleğe alınmış bir girişin geçerlilik süresini (TTL) belirlemek için Expires üst bilgisini kullanabilir. Bu başlık, bir yanıtın önbellek girişinin güncelliğini yitirdiği tarih/saati belirtir. Bu başlık, sunucuların bir zaman damgasına göre önbelleğe alınmış bir değerin döndürülmesinin uygun olduğu durumları belirtmesine olanak tanır.

Expires üstbilgisi için kabul edilen tarih biçimleri HTTP/1.1 spesifikasyonunda açıklanmıştır. Örneğin:

Süre sonu: 01 Aralık 1994 Per 16:00:00 GMT

HTTP tarih/saat biçimleri hakkında ayrıntılı bilgi için HTTP/1.1 spesifikasyonundaki Tarih/Saat Biçimleri bölümüne bakın.

Expires üstbilgisi hakkında daha fazla bilgi için HTTP/1.1 spesifikasyonundaki Başlık Alanı Tanımları bölümünü inceleyin.

ETag

Varlık etiketi (ETag), istenen bir kaynakla ilişkili bir tanımlayıcıdır. Sunucular, ETag'i kullanarak istenen kaynağın ve ilişkili önbelleğe alınmış kaynağın eşleşip eşleşmediğini belirleyebilir. Örneğin, sunucu, şu anda önbelleğe alınmış olanla eşleşmeyen yanıtı yeniden önbelleğe alabilir. ETags eşleşirse önbelleğe alınmış kaynağı döndürebilir.

Bir hedef uç nokta, Edge'e ETag içeren bir yanıt gönderdiğinde Edge, yanıtla birlikte ETag'ı da önbelleğe alır.

HTTP/1.1 spesifikasyonundaki Protokol Parametreleri bölümünden öğe etiketleri hakkında daha fazla bilgi edinebilirsiniz.

If-Match

If-Match istek başlığında, başlıkta bulunan ETag, önbelleğe alınan ETag ile eşleşiyorsa önbelleğe alınan öğe günceldir. GET dışındaki ve If-Match başlığı belirten tüm istekler, kaynak önbelleğe alma tesislerinin isteği işleme şansı elde etmesini sağlamak için kaynak sunucuya iletilir.

If-Match hakkında daha fazla bilgiyi HTTP/1.1 spesifikasyonundaki Header Field Definitions bölümünde bulabilirsiniz.

Edge, bir istemciden If-Match üst bilgisi içeren gelen bir GET isteği alırsa:

Eğer Sonra
If-Match başlığı bir veya daha fazla ETag belirtir
  1. Apigee Edge, belirtilen kaynak için süresi dolmamış tüm önbelleğe alınmış girişleri alır ve bu önbelleğe alınmış girişlerdeki güçlü ETag'leri If-Match başlığında belirtilenlerle karşılaştırır.
  2. Eşleşme bulunursa önbelleğe alınmış giriş döndürülür.
  3. Aksi takdirde istek, kaynak sunucuya iletilir.
If-Match üstbilgisinde "*" belirtilir Kaynak önbelleğe alma tesislerinin isteği işleme fırsatı bulmasını sağlamak için istek, kaynak sunucuya iletilir.
Aynı istek URI'sine sahip bir önbellek girişi bulundu ancak bu giriş yalnızca zayıf ETag'ler içeriyor Giriş, istemciye döndürülmeden önce kaynak sunucu tarafından yeniden doğrulanmalıdır
ETags, kaynak sunucudan gelir. ETag, istemciye değiştirilmeden döndürülür

If-None-Match

If-None-Match başlığında, başlıkta yer alan ETag, önbelleğe alınan ETag ile eşleşmiyorsa önbelleğe alınan öğe günceldir. GET dışındaki ve bu üstbilgiyi içeren istekler kaynak sunucuya iletilir.

Edge, bu üstbilgiyle gelen bir GET isteği alırsa:

Eğer Sonra
If-None-Match başlığı bir veya daha fazla ETag belirtir
  1. Apigee Edge, belirtilen URI için süresi dolmamış tüm önbelleğe alınmış girişleri alır ve bu önbelleğe alınmış girişlerdeki güçlü ETag'leri If-None-Match başlığında belirtilenlerle karşılaştırır.
  2. Eşleşme bulunursa Edge, 304 Değiştirilmedi durumu döndürür. Eşleşme yoksa Edge, isteği kaynak sunucuya iletir.

If-None-Match başlığı "*" değerini belirtiyor ve istenen URI için süresi dolmamış bir önbelleğe alınmış giriş var

Edge, 304 Değiştirilmedi durumu döndürüyor
Aynı istek URI'sine sahip bir önbellek girişi bulundu ancak yalnızca zayıf ETag'ler içeriyor Edge, girişi istemciye döndürmeden önce girişin kaynak sunucu tarafından yeniden doğrulanması gerekir.
Edge, kaynak sunucudan bir ETag alır ETag, istemciye değiştirilmeden döndürülür

If-Modified-Since

Apigee Edge, GET isteğinde bir If-Modified-Since üstbilgisi alırsa geçerli bir önbellek girişi olsa bile bu istek kaynak sunucuya iletilir.

Bu sayede, bir kaynakta Apigee Edge'den geçmeyen güncellemelerin dikkate alınması sağlanır. Kaynak sunucu yeni bir öğe döndürürse Edge, mevcut önbelleğe alma girişini yeni değerle değiştirir. Sunucu 304 Değişmemiş durumunu döndürürse Edge, önbelleğe alınan yanıtın Last-Modified başlığı değişmemiş olduğunu gösteriyorsa yanıt değerini döndürür.

Accept-Encoding

Gelen bir istek, gzip, deflate veya compress değerlerine sahip Accept-Encoding başlığını içerdiğinde kaynak sunucu sıkıştırılmış verilerle yanıt verir. Sonraki istekler Accept-Encoding başlıkları olmadan geldiğinde sıkıştırılmamış bir yanıt beklerler. Apigee'nin yanıt önbelleğe alma mekanizması, kaynak sunucuya geri dönmeden gelen üst bilgilere bağlı olarak hem sıkıştırılmış hem de sıkıştırılmamış yanıtlar gönderebilir.

Anahtarları önbelleğe alınan her öğe için daha anlamlı hale getirmek amacıyla önbelleğe alınan anahtarlara Kabul üstbilgi değerleri ekleyebilirsiniz. Daha fazla bilgi için Yanıt Önbelleği Politikası'ndaki "Önbellek anahtarı yapılandırma" bölümüne bakın.