{"id":23739,"date":"2016-08-19T13:04:00","date_gmt":"2016-08-19T13:04:00","guid":{"rendered":"https:\/\/site.axamit.com\/?p=615"},"modified":"2026-06-23T15:43:44","modified_gmt":"2026-06-23T15:43:44","slug":"hoe-schakelt-u-de-aem-dispatcher-cache-in","status":"publish","type":"post","link":"https:\/\/axamit.com\/nl\/blog\/adobe-experience-manager\/hoe-schakelt-u-de-aem-dispatcher-cache-in\/","title":{"rendered":"Hoe schakelt u de AEM Dispatcher Cache in?"},"content":{"rendered":"<div class=\"custom-toc\"><ul><li class=\"h2-toc\"><a href=\"#renders\">Renders<\/a><\/li><li class=\"h2-toc\"><a href=\"#filters\">Filters<\/a><\/li><li class=\"h2-toc\"><a href=\"#cache\">Cache<\/a><\/li><li class=\"h2-toc\"><a href=\"#headers\">Headers<\/a><\/li><li class=\"h2-toc\"><a href=\"#summary\">Samenvatting<\/a><\/li><\/ul><\/div>\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\"><em>Zie ook:<\/em><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"http:\/\/axamit.com\/blog\/adobe-experience-manager\/aem-dispatcher\/\" data-type=\"post\" data-id=\"2473\">Deel 1: Een korte blik op de dispatcher en diens doelen<\/a><\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"wp-block-paragraph\">Caching is een belangrijke prestatiefactor en een bron van problemen wanneer het niet correct is ingesteld. Dit artikel geeft een overzicht en nuttige, praktische details over hoe caching aan te passen voor een lokale ontwikkelomgeving en waar de gecachte bestanden worden opgeslagen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dus wat is cache in AEM, en hoe werkt het?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cache in AEM is een component die transparant gegevens opslaat, zodat toekomstige verzoeken om die gegevens sneller kunnen worden afgehandeld. Zodra een cachebaar document wordt aangevraagd, wordt het door de <a href=\"https:\/\/axamit.com\/nl\/blog\/adobe-experience-manager\/wat-is-de-dispatcher-in-aem-2\/\">Dispatcher<\/a> gecontroleerd om te identificeren of dat document bestaat in het bestandssysteem van de webserver:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Als het document is gecachet, retourneert de Dispatcher het bestand.<\/li>\n\n\n\n<li>De Dispatcher vraagt het document aan bij de AEM-instantie als het niet is gecachet.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Standaard worden bronnen alleen gecachet als aan alle volgende voorwaarden is voldaan:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Het HTTP-verzoek maakt gebruik van de GET-methode;<\/li>\n\n\n\n<li>De aangevraagde URL heeft een extensie (zoals .html of .xml);<\/li>\n\n\n\n<li>De aangevraagde URL heeft geen query string (er zijn geen parameters na de extensie);<\/li>\n\n\n\n<li>Het verzoek heeft geen &#8216;Authorization&#8217;-header (tenzij AllowAuthorized 1 is).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">De instellingen zijn gedefinieerd in het configuratiebestand van de dispatcher. In ons geval is dit een conf\/dispatcher.any-bestand. Het configuratiebestand bevat een reeks enkel- of meervoudige eigenschappen die het gedrag van de dispatcher bepalen:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>eigenschapsnamen worden voorafgegaan door een forward slash (&#8216;\/&#8217;);<\/li>\n\n\n\n<li>meervoudige eigenschappen omsluiten onderliggende items met accolades (&#8216;{}&#8217;);<\/li>\n\n\n\n<li>commentaar begint met het &#8216;#&#8217;-symbool.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"renders\">Renders<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Eerst moet u renders specificeren voor de dispatcher. Renders zijn AEM-instanties waarvan de dispatcher de inhoud ontvangt, en die gecachet kunnen worden. Renders is het eerste wat we zullen defini\u00ebren in ons configuratiebestand. De Dispatcher zal automatisch de belasting verdelen over deze AEM-instanties als u meer dan \u00e9\u00e9n render definieert. In ons geval zullen we slechts \u00e9\u00e9n render instellen: een publieke AEM-instantie.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/renders\n      {\n      \/rend01\n        {\n        \/hostname \"localhost\"\n        \/port \"4503\"\n        }\n      }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">U kunt nu de\u00a0<strong>httpd<\/strong>\u00a0server herstarten en controleren of de dispatcher bronnen kan opvragen van een publieke AEM-instantie.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als u bijvoorbeeld een werkende\u00a0http:\/\/localhost:4503\/content\/geometrixx\/en.html\u00a0pagina heeft, dan zou de dispatcherversie van deze pagina beschikbaar moeten zijn op\u00a0http:\/\/localhost\/content\/geometrixx\/en.html. Merk op dat we de poort niet instellen in het URL-verzoek omdat de dispatcher (meer precies, httpd) werkt op poort 80, wat de standaard is voor alle browsers.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"filters\">Filters<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">De\u00a0<strong>\/filter<\/strong>\u00a0sectie specificeert HTTP-verzoeken die de dispatcher kan accepteren. Alle andere verzoeken worden teruggestuurd naar de webserver met een 404-foutcode (pagina niet gevonden). Laten we toegang tot alle bronnen toestaan voor ons demonstratiegeval.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/filter\n      {\n      \/0001 { \/type \"allow\" \/glob \"*\" }\n      }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Filtertypen: \u201callow\u201d of \u201cdeny\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Globs worden vergeleken met de gehele verzoekregel, bijv.:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/0001 { \/type \"allow\" \/glob \"* \/index.html *\" }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Deze glob komt overeen met het verzoek \u201cGET \/index.html HTTP\/1.1\u201d maar niet met \u201cGET \/index.html?a=b HTTP\/1.1\u201d.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In plaats van \u201cglobs\u201d, kunt u afzonderlijke \u201curl\u201d, \u201cmethod\u201d, \u201cprotocol\u201d, \u201cextension\u201d gebruiken om uw filter te defini\u00ebren. Naast \u201curl\u201d, kunt u \u201cpath\u201d, \u201cselectors\u201d, \u201cextension\u201d, \u201csuffix\u201d gebruiken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Wanneer een verzoek voldoet aan meerdere filterpatronen, wordt alleen het laatste filterpatroon toegepast.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nadat u uw filters heeft gedefinieerd, kunt u\u00a0<strong>httpd<\/strong>\u00a0herstarten en controleren of de dispatcher toegang heeft tot alle bronnen van de publieke AEM-instantie. Uiteraard moet u om veiligheidsredenen de toegang tot sommige bronnen in een echte productieomgeving weigeren.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"cache\">Cache<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">De cachingsectie bepaalt welke bronnen de dispatcher zal cachen. Deze sectie heeft veel regels die vergelijkbaar zijn met de filterregels, met enkele aanvullende instellingen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bijvoorbeeld,\u00a0<strong>\/docroot<\/strong>\u00a0bepaalt de locatie van de directory waar gecachete bestanden worden opgeslagen. De waarde moet exact hetzelfde pad zijn als de documentroot van de webserver, zodat de dispatcher en de webserver dezelfde bestanden kunnen verwerken.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Voor onze demonstratie, laten we docroot instellen en het cachen van alle resources ontvangen van onze render (publish instance) toestaan:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>    \/cache\n      {\n      \/docroot \"\/Apache22\/htdocs\"\n      \/rules\n        {\n        \/0000\n          {\n          \/glob \"*\"\n          \/type \"allow\"\n          }\n        }\n      }\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Zodra u deze wijzigingen heeft toegepast, kunt u de\u00a0<strong>HTTPd<\/strong>\u00a0server herstarten, een nieuw priv\u00e9-browservenster openen voor ongeautoriseerde toegang zonder de \u201cAuthorization\u201d-header te gebruiken (Chrome ctrl+shift+n, Firefox ctrl+shift+p) en naar:\u00a0http:\/\/localhost\/content\/geometrixx\/en\/products.html gaan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gecachete resources zouden moeten verschijnen in de htdocs-directory. Resources hebben een URL-achtige hi\u00ebrarchie: directories vormen paden, en statische HTML-bestanden bevatten gerenderde inhoud.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"headers\">Headers<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">U weet dat gecachete HTML-bestanden alleen HTML-inhoud bevatten. Maar wat moeten we doen als we response headers ontvangen van renders willen cachen?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als reacties van renders bijvoorbeeld een \u201cContent-Type\u201d header bevatten die de codering definieert, dan wordt de HTML-inhoud mogelijk niet correct weergegeven zonder die header. Dat is waarvoor het\u00a0<strong>\/headers<\/strong>\u00a0blok binnen\u00a0<strong>\/cache<\/strong>\u00a0secties is ontworpen. Laten we enkele veelvoorkomende en nuttige headers cachen:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>\/cache\n{\n      \/headers\n        {\n        \"Cache-Control\"\n        \"Content-Disposition\"\n        \"Content-Type\"\n        \"Expires\"\n        \"Last-Modified\"\n        \"X-Content-Type-Options\"\n        }\n}\n<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Nadat u de headers in uw dispatcher-configuratiebestand heeft gewijzigd, verwijdert u alle cache uit de\u00a0<strong>htdocs<\/strong>\u00a0directory en herstart u\u00a0<strong>httpd<\/strong>. Daarna kunt u\u00a0http:\/\/localhost\/content\/geometrixx\/en\/products.html openen.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tot slot, vindt u niet alleen het gecachete HTML-bestand\u00a0<strong>products.html<\/strong>\u00a0in de htdocs\/content\/geometrixx\/en directory, maar ook het bestand products.html.h naast het originele HTML-bestand\u00a0<strong>products.html<\/strong>. Dit *.h-bestand bevat headers voor het gecachete HTML-bestand.<\/p>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\" id=\"summary\">Samenvatting<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">U kunt snel caching activeren met behulp van de volgende initi\u00eble instellingen in het dispatcher-configuratiebestand:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>stel renders in;<\/li>\n\n\n\n<li>stel filters in;<\/li>\n\n\n\n<li>stel htdocs in en regels voor cachingsecties;<\/li>\n\n\n\n<li>stel headers in voor het opslaan van HTTP-headers.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h2 class=\"wp-block-heading\">FAQ<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"how-does-aem-dispatcher-cache-work-\">Hoe werkt de AEM dispatcher-cache?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nadat een cachebaar document is aangevraagd, wordt het door de Dispatcher gecontroleerd om te identificeren of dat document bestaat in het bestandssysteem van de webserver:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Als het document in de cache is opgeslagen, retourneert de Dispatcher het bestand. De Dispatcher vraagt het document op van de AEM-instantie als het niet in de cache is opgeslagen.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-cache-in-aem-\">Wat is cache in AEM?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cache in AEM is een component die transparant gegevens opslaat, zodat toekomstige verzoeken om die gegevens sneller kunnen worden afgehandeld.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"what-is-permission-sensitive-caching-in-aem-\">Wat is permissiegevoelige caching in AEM?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Permissiegevoelige cache in AEM stelt u in staat beveiligde pagina&#8217;s in de cache op te slaan. De Dispatcher controleert de toegangsrechten van de gebruiker voor een pagina voordat de gecachete pagina wordt geleverd.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Renders Filters Cache Headers Samenvatting Zie ook: Caching is een belangrijke prestatiefactor en een bron van problemen wanneer [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":5015,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[158],"tags":[],"class_list":["post-23739","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-adobe-experience-manager"],"acf":{"cta":"Give Us a Call","phone":"+1 (438) 383-6878","meta-description":"Weet welke instellingen in het Dispatcher-configuratiebestand u moet gebruiken om caching in AEM te activeren, te defini\u00ebren welke bronnen moeten worden gecachet en hoe u deze moet opslaan om de laadsnelheid van de pagina's van uw website te versnellen."},"_links":{"self":[{"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/posts\/23739","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/comments?post=23739"}],"version-history":[{"count":1,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/posts\/23739\/revisions"}],"predecessor-version":[{"id":23740,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/posts\/23739\/revisions\/23740"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/media\/5015"}],"wp:attachment":[{"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/media?parent=23739"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/categories?post=23739"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/axamit.com\/nl\/wp-json\/wp\/v2\/tags?post=23739"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}