Quick CloudFlare sizin için 'yeni kullanıcı' sorusu:
ARKA PLAN: Orijin sunucum tarafından sunulan HTML sayfaları hiçbir zaman değişmez. Tüm dinamik içerik, sayfa kullanıcının tarayıcısına yüklendikten sonra JavaScript aracılığıyla indirilir. JavaScript tarafından türetilen dinamik içerik kısmen URL'nin sorgu dizesine bağlıdır, ancak sorgu dizesinin kendisinin orijinal olarak indirilen HTML içeriğini etkilemez. Bu nedenle aşağıdaki URL'lerin tümü , tarayıcıda JavaScript tarafından kullanılmadan önce orijinalinden tam olarak aynı HTML'yi oluşturur :
https://www.example.com/private/my-investments?portfolioID=296
https://www.example.com/private/my-investments?portfolioID=325
https://www.example.com/private/my-investments?portfolioID=319
SORU: CloudFlare yapar önbelleğe HTML varsayılan olarak göz önüne alındığında, tek bir önbelleğe alınmış kopya böylece benim Sayfa Kurallar, inşa ettirir nasıl https://www.example.com/private/my-investments?[anyValue] tüm kullanıcılara döndürülür ? İşte denedim:
"HER ŞEY ÖNLEYİN:" 'Her Şeyi Önbellek' direktifini kullanmak HTML kodumun önbelleğe alınmasına (iyi) neden olur, ancak önbellek anahtarının bir parçası olarak tüm sorgu dizesini kullanır (kötü). Dolayısıyla, bir kullanıcı aşağıdaki URL'ye ulaşırsa ...
https://www.example.com/private/my-investments?portfolioID=296
... ve on saniye sonra aynı URL'yi farklı bir sorgu dizesiyle vurur, örneğin:
https://www.example.com/private/my-investments?portfolioID=325
... CloudFlare, bu isteği bir önbellek MISS (cf-cache-status: MISS) olarak ele alır ve kaynak sunucuma tekrar vurur. Bu, başlangıç noktasından döndürülen HTML'nin her iki URL için de aynı olmasına rağmen.
"IGNORE QUERY STRING CACHING:" Kesinlikle "IGNORE QUERY STRING CACHING" seçeneğini seçerek bu sorunu çözeceğimi düşündüm. Ancak bu seçeneği Sayfa Kuralı'nda kullanırken, hiçbir HTML önbelleğe alınmaz; Yalnızca .js, .css ve .png dosyaları önbelleğe alınır. Ve bir kez daha kökenim HTML verileri için yapılan her bir çağrı için vurulur. :(
Bariz bir şeyi kaçırmam gerektiğini hissediyorum. Düşüncesi olan var mı?
GÜNCELLEME : Sizin yürütmek istediğim bir fikrim vardı. Dahili URL düzenimi 'yerine' # 'kullanmak üzere değiştirerek bu sorunu çözebilir miyim? Yani şöyle bir URL yerine ...
https://www.example.com/private/my-investments?portfolioID=296
.. Gibi bir şey kullanırdım:
https://www.example.com/private/my-investments#portfolioID=296
Bu, sorgu dizesi parametrelerinin CloudFlare'ye hiç iletilmesini engelleyecektir ... Ne düşünüyorsunuz?
Festus