Stel dat meerdere workers in een browser verschillende pagina's van één site openen. Die pagina's verwijzen naar dezelfde stylesheet, hetzelfde logo en dezelfde scriptbundel. Een gedeelde forwardcache kan de eerste ophaalactie nuttig maken voor latere workers wanneer de antwoorden herbruikbaar zijn.

Verander nu de werkbelasting: elke worker downloadt slechts één HTML-document en laadt nooit de gekoppelde bronnen. De gedeelde stylesheet staat nog in de opmaak, maar geen enkele worker vraagt hem op. Hij draagt niets bij aan de cache-hitratio van de proxy.

Begin bij de verzoeken die uw crawler daadwerkelijk doet

Een browser die een pagina weergeeft en een HTTP-client die de bron ophaalt, maken verschillende verzoekverzamelingen. Onderzoek die verzamelingen voordat u een cacheontwerp kiest.

WerkbelastingPotentieel voor gedeeld hergebruik
Workers halen herhaaldelijk dezelfde openbare assets opNuttig wanneer versheids- en cachesleutelregels het toestaan
Elk verzoek heeft een unieke URL of antwoordvariantWeinig overlap om te hergebruiken
Een antwoord moet opnieuw worden gevalideerd voordat het wordt hergebruiktKan antwoordbytes besparen maar vereist nog steeds een ronde naar bovenstrooms
Workers voldoen verzoeken al uit hun eigen lokale cacheDie verzoeken bereiken de gedeelde proxy mogelijk nooit

Gelijkheid van URL alleen is niet voldoende. Het versheidsbeleid van het antwoord en velden die Vary noemt kunnen representaties onderscheiden. Privé-, niet-opslagbare of geauthenticeerde inhoud vereist de toepasselijke regels voor gedeelde caches; die mag niet in één openbaar resultaat worden gedwongen alleen om het aantal treffers te verhogen.

Voor gewoon HTTPS CONNECT-verkeer vervoert de forwardproxy een versleutelde tunnel en bevat daarin geen HTTP-objecten om te cachen. Een implementatie met TLS-inspectie heeft ander vertrouwens- en verwerkingsgedrag. Neem de werkelijke modus mee bij het beoordelen of objectcaching beschikbaar is.

Een cachetreffer kan een ophaalactie bovenstrooms vermijden, terwijl een misser nog steeds betaalt voor het werk van de tussenlaag. Vergelijk voltooide nuttige bytes, verkeer bovenstrooms en latentie voor de beoogde werkbelasting. Het aantal threads beschrijft gelijktijdigheid; het beschrijft niet hoeveel herbruikbare inhoud die threads delen.

Gerelateerde artikelen