VPN sunucusunun yanındaki bir önbellek, tünelin arkasındaki herkes için ücretsiz bant genişliği gibi görünür. Değildir, çünkü o noktadan geçen baytlar uçları tarayıcı ve web sitesi olan bir TLS oturumuyla korunmaya devam eder. VPN geçidi yalnızca kendi dış şifrelemesini kaldırır, uygulamanınkini değil. Donanım eklemeden önce hangi tekrarlanan nesneyi yeniden kullanmak istediğinize karar verin.

TLS oturumu tarayıcıya aittir

Normal HTTPS'te tarayıcı siteyle anahtar pazarlığı yapar ve el sıkışmadan sonraki her kayıt bu uç çifti için şifrelenir. Bir VPN geçidi oluşturduğu tünelin şifresini çözer ve ardından opak TLS kayıtlarını iletir. Hedefleri, zamanlamayı ve hacmi görür, istek satırını veya yanıt gövdesini görmez. Her önbelleğin birlikte yaşaması gereken sınır budur.

Bu sınırı bozan her tasarım bir TLS araya girme tasarımıdır ve sertifika güveni ile cihaz yönetimi konusunda kendi sonuçları vardır.

CONNECT bir tüneldir, önbellek değil

Açık bir yönlendirmeli proxy genellikle bir HTTP CONNECT isteği alır ve ardından baytları iki yönde iletir. İletme anahtar kelimedir: proxy şifrelenmiş konuşmayı ayrıştırmaz.

curl -sSI -x http://proxy.example:3128 https://example.com/

Yanıt başlıkları proxy'nin tünel işleyişinden gelir, sayfanın önbelleğe alınmış kopyasından değil. Başarılı bir CONNECT yolun çalıştığı anlamına gelir, yeniden kullanım için bir şeyin saklandığı anlamına değil. 443 numaralı bağlantı noktasını önbelleğe yönlendirmek ona TLS konuşmayı da öğretmez, çünkü önbellekleme okunabilir mesajlar gerektirir. İstemci yapılandırması, açıklanamayan bir yönlendirme yerine desteklenen açık proxy ayarını kullanmalıdır.

İşlettiğinizi önbellekle, gezdiğinizi değil

İçerik sizinse, ters proxy TLS'i sonlandırabilir ve onaylanmış yanıtları bilinçli olarak saklayabilir. İçerik bir paket deposuna aitse, projenin desteklediği aynayı kullanın.

nginx -T | grep -n "proxy_cache"
curl -sSI https://mirror.example/pkg/index.json | grep -i -E "cache-control|age"

İlk komut bir önbellek bölgesinin yapılandırılıp yapılandırılmadığını ve nerede geçerli olduğunu gösterir, ikincisi bir nesne için kaynağın kendi önbellekleme yönergelerini gösterir. Paylaşılan bir önbellek tazeliğe, önbellek denetimlerine ve temsilleri ayıran istek özniteliklerine saygı göstermelidir; private ve no-store farklı anlamlara gelir ve isabet oranını yükseltmek için hiçbiri çıkarılmamalıdır. HTTP önbellekleme kuralları, yanıtların kimliği doğrulanmış isteklere saklanmasını da sınırlar ve tam orada kişiselleştirilmiş bir sayfa veri ifşasına dönüşür. Proxy'yi açık bir aktarıcı olarak sunmak yerine onaylı istemcilerle sınırlı tutun.

İsabeti ölçün, kronometreyi değil

Daha hızlı bir ikinci istek yeni önbelleğin bir şey yaptığını kanıtlamaz, çünkü tarayıcılar ve işletim sistemleri kendi başlarına agresif biçimde önbellekler. Proxy'den isabet ve ıskalama sayaçlarını isteyin ve kontrollü bir tekrarda kaynak trafiğini izleyin. Bilinen bir nesnenin tek bir yinelenen indirmesini kullanın, önce önbellek açıkken sonra atlanmışken, ve geçen süreyi değil kaynağın sunduğu baytları karşılaştırın. Ardından yetkilendirme sınırını denetleyin: oturum açmayı gerektiren bir kaynak başka bir istemciye sunulmamalıdır.

İş yükünü, önbellek anahtarını ve yeniden kullanıma izin veren politikayı kaydedin. Önbellek, optimizasyon kılığına girmiş bir veri paylaşımı kararıdır.

İlgili makaleler