wand-magic-sparklesOptimaliseer bandbreedte

Bandbreedteoptimalisatie met de ETag-header

Als je een feed hebt die minder vaak verandert dan de geplande uitvoeringen van je project, is het onnodig om de hele feed bij elke run opnieuw te downloaden. Dat kan je project onnodig vertragen en je maakt onnodige egress-kosten bij je hostingprovider.

Om onnodige downloads te voorkomen, kun je bandbreedteoptimalisatie inschakelen voor http- en https-imports. Als deze instelling aanstaat, controleren we je bestand nog steeds bij elke run, maar als je server aangeeft dat het bestand sinds de vorige download niet is veranderd, downloaden we het niet opnieuw.

Technische details

Wanneer bandbreedteoptimalisatie is ingeschakeld, slaan we tijdens een download de waarde van de ETag http-headerarrow-up-rightop, als je server deze in de respons opneemt. Bij de volgende run voegen we een If-None-Match http-headerarrow-up-right toe aan ons verzoek, met daarin de eerder waargenomen ETag-waarde. Als je server dan reageert met de http-statuscode “304 Not Modified”, weten we dat het bestand niet is veranderd.

Dat betekent dat je server twee dingen moet doen zodat bandbreedteoptimalisatie werkt:

  • Hij moet een ETag-header in de respons opnemen

  • Hij moet de If-None-Match request-header respecteren

Gangbare servers zoals Apache, Nginx en Amazon S3 ondersteunen dit standaard, dus je hoeft niets bijzonders te doen om van bandbreedteoptimalisatie te profiteren.

Als je server geen ETag-header meegeeft, of nooit een “304 Not Modified”-respons retourneert, heeft bandbreedteoptimalisatie geen effect en downloaden we het volledige bestand bij elke run.

Vragen & antwoorden

chevron-rightHoe weet ik of bandbreedteoptimalisatie effectief is?hashtag

Wanneer we probeerden een bestand te importeren maar het was sinds de laatste import niet veranderd, kun je dit zien in de statusupdates van die importer:

chevron-rightKan data in Channable verouderd raken als bandbreedteoptimalisatie is ingeschakeld?hashtag

Nee, er is geen risico op verouderde data als je server zich correct gedraagt. Channable controleert nog steeds of er nieuwere data beschikbaar is bij elke geplande run en elke keer dat je op “nu uitvoeren” klikt voor de import, ook wanneer bandbreedteoptimalisatie is ingeschakeld.

chevron-rightZijn er nadelen aan het inschakelen van bandbreedteoptimalisatie?hashtag

Nee, als je server zich correct gedraagt, is het altijd veilig om bandbreedteoptimalisatie in te schakelen. Als je server de benodigde functionaliteit niet ondersteunt, heeft de optimalisatie geen effect, maar het is niet schadelijk.

chevron-rightWanneer moet ik bandbreedteoptimalisatie uitschakelen?hashtag

Als je server verkeerd is geconfigureerd of een bug bevat, kan hij soms met “304 Not Modified” antwoorden, zelfs als je feed wel degelijk is veranderd. De meest voorkomende fout is een server die een constante ETag-waarde stuurt die niet verandert als de feed verandert. In dat geval zouden gegevens in Channable verouderd raken. Als je dit niet op je server kunt oplossen, kun je bandbreedteoptimalisatie in Channable uitschakelen.

chevron-rightVoorkomt bandbreedteoptimalisatie alle onnodige downloads?hashtag

We downloaden je feed nog steeds eens in de 10 dagen, zelfs als je server aangeeft dat de feed niet is veranderd. Voor bestanden die minder vaak veranderen betekent dit dat we af en toe het volledige bestand downloaden, maar bandbreedteoptimalisatie bespaart nog steeds minstens 90% van je bandbreedte.

Laatst bijgewerkt

Was dit nuttig?