{"id":13985,"date":"2025-10-13T16:36:08","date_gmt":"2025-10-13T14:36:08","guid":{"rendered":"https:\/\/webhosting.de\/caching-ebenen-hosting-guide-einfach-verstehen-rocket\/"},"modified":"2025-10-13T16:36:08","modified_gmt":"2025-10-13T14:36:08","slug":"caching-levels-hosting-guide-simply-understand-rocket","status":"publish","type":"post","link":"https:\/\/webhosting.de\/pl\/caching-ebenen-hosting-guide-einfach-verstehen-rocket\/","title":{"rendered":"Poziomy buforowania w hostingu: wyja\u015bnienie buforowania opcode, object, page i CDN"},"content":{"rendered":"<p><strong>Poziomy buforowania<\/strong> w hostingu przyspieszaj\u0105 wykonywanie PHP, dost\u0119p do bazy danych i dostarczanie kompletnych stron za po\u015brednictwem serwer\u00f3w brzegowych. Poka\u017c\u0119 ci, jak dzia\u0142aj\u0105 cache opcode, object, page i CDN, gdzie wchodz\u0105 w gr\u0119 i kt\u00f3re ustawienia maj\u0105 najwi\u0119kszy wp\u0142yw.<\/p>\n\n<h2>Punkty centralne<\/h2>\n\n<ul>\n  <li><strong>Opcode<\/strong> Cache wst\u0119pnie kompiluje PHP i zmniejsza obci\u0105\u017cenie procesor\u00f3w dla ka\u017cdego \u017c\u0105dania.<\/li>\n  <li><strong>Obiekt<\/strong> Pami\u0119\u0107 podr\u0119czna przechowuje cz\u0119ste wyniki bazy danych w pami\u0119ci RAM i zapisuje zapytania.<\/li>\n  <li><strong>Strona<\/strong> Pami\u0119\u0107 podr\u0119czna dostarcza gotowy kod HTML odwiedzaj\u0105cym w milisekundach.<\/li>\n  <li><strong>CDN<\/strong> Pami\u0119\u0107 podr\u0119czna dystrybuuje zawarto\u015b\u0107 do serwer\u00f3w brzegowych na ca\u0142ym \u015bwiecie i zmniejsza op\u00f3\u017anienia.<\/li>\n  <li><strong>Interakcja<\/strong> na wszystkich poziomach eliminuje w\u0105skie gard\u0142a od zaplecza do kraw\u0119dzi.<\/li>\n<\/ul>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img fetchpriority=\"high\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2025\/10\/hosting-caching-server-8427.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Co robi\u0105 poziomy buforowania<\/h2>\n\n<p>U\u017cywam czterech <strong>Poziomy<\/strong>w celu skr\u00f3cenia czasu \u0142adowania i obci\u0105\u017cenia serwera: opcode, object, page i CDN. Ka\u017cdy poziom dotyczy innego w\u0105skiego gard\u0142a i dzia\u0142a na w\u0142asnym poziomie infrastruktury. W ten spos\u00f3b oszcz\u0119dzam czas procesora podczas wykonywania kodu, zmniejszam liczb\u0119 zapyta\u0144 do bazy danych, dostarczam HTML bezpo\u015brednio i przybli\u017cam zawarto\u015b\u0107 geograficznie do u\u017cytkownika. W pierwszej kolejno\u015bci nadaj\u0119 priorytet najwi\u0119kszemu w\u0105skiemu gard\u0142u i stopniowo dodaj\u0119 do pozosta\u0142ych pami\u0119ci podr\u0119cznych. Dzi\u0119ki temu <strong>Sekwencja<\/strong> sprawia, \u017ce optymalizacja jest mierzalna i stabilna.<\/p>\n\n<h2>Opcode Cache: Natychmiastowe wykonanie PHP<\/h2>\n\n<p>Pami\u0119\u0107 podr\u0119czna kodu operacyjnego przechowuje wst\u0119pnie skompilowane kody operacyjne PHP w pliku <strong>RAM<\/strong>aby interpreter nie dzia\u0142a\u0142 ponownie przy ka\u017cdym \u017c\u0105daniu. Aktywuj\u0119 OPcache z rozs\u0105dnymi warto\u015bciami granicznymi dla pami\u0119ci, pami\u0119ci podr\u0119cznej plik\u00f3w i rewalidacji, aby gor\u0105ce \u015bcie\u017cki kodu by\u0142y stale dost\u0119pne. Szczeg\u00f3lnie zyskuj\u0105 na tym strony CMS, poniewa\u017c powtarzaj\u0105ce si\u0119 wywo\u0142ania nie powoduj\u0105 ju\u017c kompilacji. To zauwa\u017calnie zmniejsza obci\u0105\u017cenie procesora i czas odpowiedzi serwera WWW. Regularnie sprawdzam statystyki OPcache, aby przeanalizowa\u0107 <strong>Wsp\u00f3\u0142czynnik trafie\u0144 pami\u0119ci podr\u0119cznej<\/strong> wysoki.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2025\/10\/cachingmeeting2024_7582.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Pami\u0119\u0107 podr\u0119czna obiekt\u00f3w: Odci\u0105\u017cenie bazy danych<\/h2>\n\n<p>Pami\u0119\u0107 podr\u0119czna obiekt\u00f3w przechowuje cz\u0119ste wyniki z <strong>Zapytania<\/strong> w pami\u0119ci, na przyk\u0142ad menu, listy produkt\u00f3w lub uprawnienia u\u017cytkownik\u00f3w. U\u017cywam do tego us\u0142ug w pami\u0119ci, takich jak Redis lub Memcached, i przydzielam znacz\u0105ce TTL dla niestabilnych danych. Pozwala mi to znacznie zmniejszy\u0107 liczb\u0119 podr\u00f3\u017cy w obie strony do bazy danych, kt\u00f3ra pozostaje stabilna, zw\u0142aszcza przy du\u017cym nat\u0119\u017ceniu ruchu. W WordPress \u0142\u0105cz\u0119 trwa\u0142\u0105 pami\u0119\u0107 podr\u0119czn\u0105 obiekt\u00f3w z ukierunkowanymi wykluczeniami, dzi\u0119ki czemu spersonalizowane tre\u015bci nie s\u0105 zniekszta\u0142cane. Je\u015bli chcesz zacz\u0105\u0107, mo\u017cesz znale\u017a\u0107 kompaktowy przewodnik w moim artykule na temat <a href=\"https:\/\/webhosting.de\/pl\/configure-caching-wordpress-redis-przyspieszenie-wydajnosci-9324\/\">Redis dla WordPress<\/a>. Obserwuj\u0119 <strong>Wska\u017anik miss<\/strong>aby ponownie wyregulowa\u0107 klucze o zbyt kr\u00f3tkim okresie u\u017cytkowania.<\/p>\n\n<h2>Pami\u0119\u0107 podr\u0119czna strony: Dostarcz HTML<\/h2>\n\n<p>Pami\u0119\u0107 podr\u0119czna strony tworzy kompletne <strong>HTML<\/strong>-strony, kt\u00f3re system wygenerowa\u0142 dynamicznie. Definiuj\u0119 jasne zasady: anonimowi odwiedzaj\u0105cy otrzymuj\u0105 statyczne kopie, zalogowani u\u017cytkownicy omijaj\u0105 pami\u0119\u0107 podr\u0119czn\u0105. Podczas aktualizacji specjalnie czyszcz\u0119 dotkni\u0119te strony, aby zawarto\u015b\u0107 pozosta\u0142a aktualna. Op\u0142aca si\u0119 to, zw\u0142aszcza podczas szczyt\u00f3w ruchu, poniewa\u017c zmniejszam obci\u0105\u017cenie backendu praktycznie do zera. Praktyczna sekwencja krok\u00f3w jest pokazana w moim <a href=\"https:\/\/webhosting.de\/pl\/buforowanie-optymalizacja-strony-internetowej\/\">Przewodnik po buforowaniu stron internetowych<\/a>. Regularnie sprawdzam Time-To-First-Byte, aby sprawdzi\u0107 <strong>Efekt<\/strong> do weryfikacji.<\/p>\n\n<h2>Pami\u0119\u0107 podr\u0119czna CDN: globalnie szybka<\/h2>\n\n<p>CDN przenosi zawarto\u015b\u0107 do <strong>Kraw\u0119d\u017a<\/strong>-serwer blisko u\u017cytkownika, zmniejszaj\u0105c w ten spos\u00f3b op\u00f3\u017anienia. Buforowane s\u0105 zasoby takie jak obrazy, CSS i JS, a w razie potrzeby ca\u0142e strony poprzez buforowanie ca\u0142ych stron. Regu\u0142y dotycz\u0105ce plik\u00f3w cookie, nag\u0142\u00f3wk\u00f3w i parametr\u00f3w zapyta\u0144 zapobiegaj\u0105 nieprawid\u0142owemu dostarczaniu spersonalizowanych tre\u015bci. W przypadku mi\u0119dzynarodowych grup docelowych zauwa\u017calnie skracam czas \u0142adowania i zmniejszam obci\u0105\u017cenie mojego serwera \u017ar\u00f3d\u0142owego. Je\u015bli chcesz przeczyta\u0107 wi\u0119cej na temat konfiguracji, kliknij na m\u00f3j przegl\u0105d <a href=\"https:\/\/webhosting.de\/pl\/optymalizacja-cdn-dostarczanie-tresci\/\">Optymalizacja CDN<\/a>. Przygotowuj\u0119 mechanizmy oczyszczania, aby m\u00f3c natychmiast dostarczy\u0107 \u015bwie\u017ce produkty. <strong>Wersje<\/strong> do dostarczenia.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2025\/10\/caching-ebenen-webhosting-3247.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Por\u00f3wnanie poziom\u00f3w buforowania<\/h2>\n\n<p>Poni\u017csza tabela zawiera nast\u0119puj\u0105ce kategorie <strong>U\u017cycie<\/strong> i efekt, aby najpierw zaj\u0105\u0107 si\u0119 w\u0142a\u015bciwym poziomem.<\/p>\n\n<table>\n  <thead>\n    <tr>\n      <th>Poziom<\/th>\n      <th>Miejsce przechowywania<\/th>\n      <th>Typowe zastosowanie<\/th>\n      <th>G\u0142\u00f3wne zalety<\/th>\n    <\/tr>\n  <\/thead>\n  <tbody>\n    <tr>\n      <td>Pami\u0119\u0107 podr\u0119czna kod\u00f3w operacyjnych<\/td>\n      <td>Serwer (RAM)<\/td>\n      <td>Strony internetowe oparte na PHP, CMS<\/td>\n      <td>Szybsze wykonanie, mniej procesora<\/td>\n    <\/tr>\n    <tr>\n      <td>Pami\u0119\u0107 podr\u0119czna obiekt\u00f3w<\/td>\n      <td>Serwer (RAM)<\/td>\n      <td>Cz\u0119ste zapytania do bazy danych w sklepach\/CMS<\/td>\n      <td>Mniej zapyta\u0144, kr\u00f3tkie czasy odpowiedzi<\/td>\n    <\/tr>\n    <tr>\n      <td>Pami\u0119\u0107 podr\u0119czna stron<\/td>\n      <td>Serwer i\/lub CDN<\/td>\n      <td>Anonimowe ods\u0142ony<\/td>\n      <td>Bardzo kr\u00f3tki TTFB, redukcja obci\u0105\u017cenia<\/td>\n    <\/tr>\n    <tr>\n      <td>CDN Cache<\/td>\n      <td>Serwer brzegowy<\/td>\n      <td>Globalne dostarczanie stron\/zasob\u00f3w<\/td>\n      <td>Niskie op\u00f3\u017anienia, wysoka skalowalno\u015b\u0107<\/td>\n    <\/tr>\n  <\/tbody>\n<\/table>\n\n<p>Ustawi\u0142em poziomy w nast\u0119puj\u0105cy spos\u00f3b <strong>Sekwencja<\/strong> najpierw opcode, potem object, potem page i na ko\u0144cu CDN. W ten spos\u00f3b unikam powielania pracy i najpierw uzyskuj\u0119 najbardziej zauwa\u017calne efekty.<\/p>\n\n<h2>Interakcja mi\u0119dzy poziomami<\/h2>\n\n<p>W moim procesie <strong>Opcode<\/strong> Pami\u0119\u0107 podr\u0119czna pierwszego PHP bez ponownej kompilacji. Pami\u0119\u0107 podr\u0119czna obiekt\u00f3w dostarcza cz\u0119ste dane z pami\u0119ci RAM, pozostawiaj\u0105c baz\u0119 danych woln\u0105. Pami\u0119\u0107 podr\u0119czna stron serwuje powtarzaj\u0105ce si\u0119 strony bezpo\u015brednio i oszcz\u0119dza warstwy PHP i DB. CDN dostarcza tre\u015bci blisko u\u017cytkownika na ca\u0142ym \u015bwiecie i przechwytuje szczyty ruchu. Ten \u0142a\u0144cuch skraca czas oczekiwania, poniewa\u017c specjalnie przyspieszam ka\u017cdy etap i zmniejszam zale\u017cno\u015bci. Utrzymuj\u0119 to <strong>\u015acie\u017cka<\/strong> przezroczyste, aby debugowanie pozosta\u0142o \u0142atwe.<\/p>\n\n<h2>TTL, czyszczenie i walidacja pami\u0119ci podr\u0119cznej<\/h2>\n\n<p>\u015awiadomie wybaczam <strong>TTL<\/strong> dla ka\u017cdego poziomu, aby zawarto\u015b\u0107 nie by\u0142a ani zbyt stara, ani zbyt kr\u00f3tkotrwa\u0142a. W przypadku wyda\u0144 u\u017cywam oczyszczania wed\u0142ug \u015bcie\u017cki, tagu lub klucza, aby oczy\u015bci\u0107 konkretnie zamiast usuwa\u0107 wszystko. Skrajne pami\u0119ci podr\u0119czne respektuj\u0105 sygna\u0142y kontrolne, takie jak kontrola pami\u0119ci podr\u0119cznej, kontrola zast\u0119pcza lub ETag. W przypadku spersonalizowanych tre\u015bci u\u017cywam nag\u0142\u00f3wk\u00f3w Vary lub regu\u0142 plik\u00f3w cookie, aby zapobiec mieszaniu si\u0119 pami\u0119ci podr\u0119cznej. Testuj\u0119 uniewa\u017cnianie w systemach przej\u015bciowych przed umieszczeniem wi\u0119kszych kampanii. Dzi\u0119ki temu zawarto\u015b\u0107 <strong>sp\u00f3jny<\/strong>nawet je\u015bli \u0142\u0105cz\u0119 wiele poziom\u00f3w.<\/p>\n\n<h2>Pomiar: Wsp\u00f3\u0142czynnik trafie\u0144 i chybie\u0144<\/h2>\n\n<p>Mierz\u0119 <strong>Wsp\u00f3\u0142czynnik trafie\u0144<\/strong> oddzielnie dla ka\u017cdego poziomu, aby przyczyna i skutek pozosta\u0142y jasne. W przypadku OPcache sprawdzam wykorzystanie pami\u0119ci, rewalidacje i kompilacje. W przypadku pami\u0119ci podr\u0119cznej obiekt\u00f3w monitoruj\u0119 brakuj\u0105ce klucze i dostosowuj\u0119 TTL. W przypadku pami\u0119ci podr\u0119cznej stron koreluj\u0119 HIT\/MISS z TTFB, aby zobaczy\u0107 wp\u0142yw na u\u017cytkownik\u00f3w. W CDN monitoruj\u0119 regionalne op\u00f3\u017anienia i wska\u017aniki trafie\u0144 kraw\u0119dzi, aby zapewni\u0107 niezawodne dzia\u0142anie wszystkich witryn. Te kluczowe dane kontroluj\u0105 moje nast\u0119pne dzia\u0142ania <strong>Optymalizacje<\/strong>.<\/p>\n\n<h2>Przypadki brzegowe: zawarto\u015b\u0107 dynamiczna<\/h2>\n\n<p>Cz\u0119sto buforuj\u0119 strony logowania, koszyki zakupowe lub spersonalizowane pulpity nawigacyjne <strong>ostro\u017cny<\/strong>. Pracuj\u0119 z wyj\u0105tkami, nag\u0142\u00f3wkami no-cache, kr\u00f3tkimi TTL lub Edge Side Includes (ESI) dla podobszar\u00f3w. Parametry wyszukiwania lub pliki cookie sesji mog\u0105 generowa\u0107 warianty, kt\u00f3re celowo ograniczam. Interfejsy API r\u00f3wnie\u017c korzystaj\u0105 z buforowania, ale wymagaj\u0105 dok\u0142adnego uniewa\u017cnienia w przypadku wyda\u0144. U\u017cywam pami\u0119ci podr\u0119cznej obiekt\u00f3w zamiast pami\u0119ci podr\u0119cznej stron dla wysoce niestabilnych tre\u015bci. Tak wi\u0119c odpowiedzi pozostaj\u0105 <strong>poprawny<\/strong>bez utraty pr\u0119dko\u015bci.<\/p>\n\n<h2>Konfiguracja wed\u0142ug typu hostingu<\/h2>\n\n<p>Na hostingu wsp\u00f3\u0142dzielonym aktywuj\u0119 <strong>OPcache<\/strong> i u\u017cywam trwa\u0142ej pami\u0119ci podr\u0119cznej obiekt\u00f3w, je\u015bli jest dost\u0119pna. W \u015brodowiskach VPS lub dedykowanych zapewniam Redis\/Memcached, izoluj\u0119 zasoby i konfiguruj\u0119 monitorowanie. W przypadku pami\u0119ci podr\u0119cznej stron wybieram rozwi\u0105zania po stronie serwera lub zintegrowane modu\u0142y stosu. W\u0142\u0105czam r\u00f3wnie\u017c CDN, je\u015bli grupy docelowe s\u0105 rozproszone lub oczekuj\u0105 szczyt\u00f3w. Dokumentuj\u0119 wszystkie regu\u0142y pami\u0119ci podr\u0119cznej, aby cz\u0142onkowie zespo\u0142u mogli bezpiecznie wprowadza\u0107 zmiany. Standaryzacja <strong>Standardy<\/strong> zapobiec b\u0142\u0119dnym konfiguracjom.<\/p>\n\n<h2>Bezpiecze\u0144stwo i buforowanie<\/h2>\n\n<p>\u0141\u0105cz\u0119 <strong>CDN<\/strong>-Buforowanie z mechanizmami ochrony, takimi jak ograniczanie szybko\u015bci i regu\u0142y WAF. Pozwala to na buforowanie szczyt\u00f3w obci\u0105\u017cenia i utrzymywanie z\u0142o\u015bliwych wzorc\u00f3w z dala, zanim dotr\u0105 do \u017ar\u00f3d\u0142a. Zako\u0144czenie TLS na kraw\u0119dzi zmniejsza op\u00f3\u017anienia i odci\u0105\u017ca systemy hosta. Nigdy nie buforuj\u0119 wra\u017cliwych tre\u015bci, na przyk\u0142ad obszar\u00f3w administracyjnych lub danych osobowych. Regularnie sprawdzam dzienniki, aby omijanie i usuwanie pami\u0119ci podr\u0119cznej pozosta\u0142o identyfikowalne. Bezpiecze\u0144stwo i <strong>Pr\u0119dko\u015b\u0107<\/strong> nie wykluczaj\u0105 si\u0119 wzajemnie, je\u015bli zasady s\u0105 jasne.<\/p>\n\n\n\n<h2>Nag\u0142\u00f3wek HTTP w szczeg\u00f3\u0142ach: precyzyjna kontrola<\/h2>\n\n<p>Czyste nag\u0142\u00f3wki decyduj\u0105 o niezawodno\u015bci dzia\u0142ania pami\u0119ci podr\u0119cznej. U\u017cywam <strong>Kontrola pami\u0119ci podr\u0119cznej<\/strong> jako g\u0142\u00f3wny sygna\u0142 i \u0142\u0105czy\u0107 je w zale\u017cno\u015bci od poziomu: publiczny, max-age dla przegl\u0105darek\/proxy i s-maxage dla wsp\u00f3\u0142dzielonych pami\u0119ci podr\u0119cznych. <strong>stale-while-revalidate<\/strong> pozwala na kr\u00f3tkie dostarczanie nieaktualnych tre\u015bci, podczas gdy s\u0105 one aktualizowane w tle. Z <strong>stale-if-error<\/strong> Utrzymuj\u0119 stron\u0119 online, nawet je\u015bli \u017ar\u00f3d\u0142o jest tymczasowo niedost\u0119pne. <strong>ETag<\/strong> oraz <strong>Ostatnio zmodyfikowany<\/strong> pomagaj\u0105 w zapytaniach warunkowych; u\u017cywam ich szczeg\u00f3lnie wtedy, gdy zawarto\u015b\u0107 musi by\u0107 cz\u0119sto sprawdzana ponownie zamiast ca\u0142kowicie retransmitowana. <strong>R\u00f3\u017cne<\/strong> Ograniczam je do naprawd\u0119 niezb\u0119dnych wymiar\u00f3w (np. cookie dla zalogowanych u\u017cytkownik\u00f3w, akceptacja kodowania dla kompresji), aby nie dosz\u0142o do niekontrolowanej eksplozji wariant\u00f3w. Dla pami\u0119ci podr\u0119cznych kraw\u0119dzi u\u017cywam <strong>Kontrola zast\u0119pcza<\/strong>aby kontrolowa\u0107 TTL specyficzne dla CDN bez wp\u0142ywu na buforowanie przegl\u0105darki.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2025\/10\/cachingebenen-techoffice-9482.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Rozgrzewanie i wst\u0119pne \u0142adowanie pami\u0119ci podr\u0119cznej<\/h2>\n\n<p>Aby unikn\u0105\u0107 zimnych start\u00f3w, ogrzewam skrytki <strong>proaktywny<\/strong> na: Po wdro\u017ceniu mam wa\u017cne trasy, strony kategorii i strony docelowe automatycznie renderowane i umieszczane w pami\u0119ci podr\u0119cznej strony i CDN. Ustalam priorytety w zale\u017cno\u015bci od ruchu, znaczenia dla sprzeda\u017cy i g\u0142\u0119boko\u015bci nawigacji. Jako \u017ar\u00f3d\u0142o s\u0142u\u017c\u0105 mapy witryn, wykresy link\u00f3w wewn\u0119trznych lub dzienniki z ostatnich kilku dni. Wst\u0119pne \u0142adowanie jest ograniczane, aby \u017ar\u00f3d\u0142o nie by\u0142o przeci\u0105\u017cone. W przypadku bufor\u00f3w obiekt\u00f3w wst\u0119pnie wype\u0142niam drogie agregacje lub struktury autoryzacji, aby pierwsza fala u\u017cytkownik\u00f3w po wydaniu otrzymywa\u0142a niezmiennie szybkie odpowiedzi.<\/p>\n\n<h2>Wersjonowanie i usuwanie pami\u0119ci podr\u0119cznej<\/h2>\n\n<p>Dostarczam statyczne zasoby z <strong>Skr\u00f3t tre\u015bci<\/strong> w nazwie pliku (np. app.abc123.css). Pozwala mi to ustawi\u0107 bardzo d\u0142ugie TTL bez ryzyka przeci\u0105gni\u0119cia. W momencie wydania zmienia si\u0119 tylko adres URL, a pami\u0119ci podr\u0119czne przechowuj\u0105 stare wersje do momentu ich wyga\u015bni\u0119cia. W przypadku odpowiedzi HTML lub API pracuj\u0119 z <strong>Znaczniki pami\u0119ci podr\u0119cznej<\/strong> lub klucze strukturalne, kt\u00f3re umo\u017cliwiaj\u0105 ukierunkowane czyszczenie (np. wszystkie strony produktu). Tam, gdzie tagowanie nie jest mo\u017cliwe, planuj\u0119 czyszczenie wed\u0142ug \u015bcie\u017cki i zapewniam wystarczaj\u0105c\u0105 ilo\u015b\u0107 miejsca w pami\u0119ci podr\u0119cznej, aby mo\u017cna by\u0142o natychmiast umie\u015bci\u0107 nowe obiekty. Wa\u017cne: nie ma niepotrzebnych <strong>no-store<\/strong> na aktywach, w przeciwnym razie oddam globalne zyski z wydajno\u015bci.<\/p>\n\n<h2>Unikaj st\u0142oczenia pami\u0119ci podr\u0119cznej<\/h2>\n\n<p>Je\u015bli cz\u0119sto u\u017cywany klucz wypadnie z pami\u0119ci podr\u0119cznej, istnieje ryzyko wyst\u0105pienia b\u0142\u0119du <strong>Grzmi\u0105ca kuchenka<\/strong>-sytuacja. Zapobiegam temu za pomoc\u0105 <strong>\u017b\u0105danie koalescencji<\/strong>Tylko pierwsze chybienie mo\u017ce zosta\u0107 obliczone, wszystkie inne czekaj\u0105 na wynik. W buforach obiekt\u00f3w ustawiam blokady z kr\u00f3tkim TTL, aby zapobiec duplikowaniu pracy. U\u017cywam r\u00f3wnie\u017c <strong>Wczesne od\u015bwie\u017canie<\/strong>Je\u015bli klucz wkr\u00f3tce wyga\u015bnie, jest odnawiany przez kilka proces\u00f3w w tle, podczas gdy u\u017cytkownicy nadal otrzymuj\u0105 star\u0105, wa\u017cn\u0105 wersj\u0119. U\u017cywam jittera (losowego przesuni\u0119cia) do dystrybucji proces\u00f3w, aby tysi\u0105ce kluczy nie wygasa\u0142y w tym samym czasie. Na poziomie API, idempotencja pomaga w\u0142\u0105czy\u0107 powt\u00f3rzenia bez efekt\u00f3w ubocznych.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2025\/10\/caching-hosting-desktop-1943.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Personalizacja, testy A\/B i warianty<\/h2>\n\n<p>Tam, gdzie personalizacja jest nieunikniona, ograniczam j\u0105 do <strong>minimalny<\/strong> wy\u0142\u0105czony. Zamiast zmienia\u0107 ca\u0142\u0105 stron\u0119, renderuj\u0119 ma\u0142e, nie buforowane fragmenty (ESI) lub prze\u0142adowuj\u0119 je po stronie klienta. Z <strong>Testy A\/B<\/strong> Unikam wariant\u00f3w opartych na plikach cookie dla wszystkich zasob\u00f3w; w przeciwnym razie wszystko ko\u0144czy si\u0119 w prywatnej pami\u0119ci podr\u0119cznej przegl\u0105darki, a wsp\u00f3\u0142dzielone pami\u0119ci podr\u0119czne staj\u0105 si\u0119 bezu\u017cyteczne. Zamiast tego enkapsuluj\u0119 tylko odpowiedni\u0105 cz\u0119\u015b\u0107 strony lub pracuj\u0119 z odtwarzaniem po stronie serwera, kt\u00f3re nie rozbija pami\u0119ci podr\u0119cznej strony. W przypadku wyboru waluty lub j\u0119zyka definiuj\u0119 unikalne \u015bcie\u017cki (np. \/de\/, \/en\/) zamiast Accept-Language, aby pami\u0119ci podr\u0119czne otrzymywa\u0142y deterministyczne klucze.<\/p>\n\n<h2>Kompresja, formaty i zmienno\u015b\u0107<\/h2>\n\n<p><strong>Gzip<\/strong> lub <strong>Pa\u0142eczka do chleba<\/strong> zmniejszaj\u0105 rozmiar transferu, ale tak\u017ce wp\u0142ywaj\u0105 na klucze pami\u0119ci podr\u0119cznej: Utrzymuj\u0119 kodowanie Vary: Accept na niskim poziomie i upewniam si\u0119, \u017ce pami\u0119ci podr\u0119czne kraw\u0119dzi mog\u0105 zapisywa\u0107 wst\u0119pnie skompresowane warianty. Optymalizuj\u0119 obrazy przy u\u017cyciu nowoczesnych format\u00f3w (WebP, AVIF) i rozmiar\u00f3w kompatybilnych z urz\u0105dzeniami. Dbam o to, aby nie ustawia\u0107 \u017cadnych niepotrzebnych zmiennych w agentach u\u017cytkownika, aby unikn\u0105\u0107 zalewu wariant\u00f3w. Kilka jasno zdefiniowanych punkt\u00f3w przerwania lub responsywne atrybuty obrazu, kt\u00f3re mo\u017cna czysto buforowa\u0107, s\u0105 lepsze. W przypadku krytycznych pakiet\u00f3w CSS\/JS u\u017cywam d\u0142ugiego buforowania i wersjonowania, aby obs\u0142ugiwa\u0107 powtarzaj\u0105cy si\u0119 ruch z pami\u0119ci podr\u0119cznej przy praktycznie zerowych kosztach.<\/p>\n\n<h2>Dostrajanie OPcache w praktyce<\/h2>\n\n<p>Dla <strong>OPcache<\/strong> Hojnie planuj\u0119 pami\u0119\u0107 RAM, aby cz\u0119sto u\u017cywane skrypty nie by\u0142y wypierane. Monitoruj\u0119 liczb\u0119 ponownych walidacji i kompilacji; je\u015bli wzrasta, zwi\u0119kszam pami\u0119\u0107 skryptu lub optymalizuj\u0119 autoloader. <strong>pami\u0119\u0107 podr\u0119czna plik\u00f3w<\/strong> do wst\u0119pnego \u0142adowania mo\u017ce zmniejszy\u0107 liczb\u0119 zimnych start\u00f3w, je\u015bli wdro\u017cenia s\u0105 rzadkie. Wa\u017cna jest sp\u00f3jna strategia wdra\u017cania: je\u015bli znaczniki czasu zmieniaj\u0105 si\u0119 cz\u0119sto, OPcache uniewa\u017cnia si\u0119 na sta\u0142e - minimalizuj\u0119 niepotrzebne zmiany w wielu plikach jednocze\u015bnie. U\u017cywam wst\u0119pnego \u0142adowania do inicjalizacji krytycznych klas na pocz\u0105tku, dzi\u0119ki czemu pierwsze \u017c\u0105dania natychmiast przynosz\u0105 korzy\u015bci.<\/p>\n\n<h2>Buforowanie interfejs\u00f3w API i mikrous\u0142ug<\/h2>\n\n<p>Odbieranie interfejs\u00f3w API <strong>w\u0142asny<\/strong> Strategie buforowania. Punkty ko\u0144cowe GET ze stabilnymi wynikami otrzymuj\u0105 wyra\u017ane TTL i ETagi, podczas gdy POST\/PUT nie s\u0105 buforowane. Oznaczam klucze zgodnie z obiektami domeny (np. user:123, product:456) i wyprowadzam uniewa\u017cnienie bezpo\u015brednio ze zdarze\u0144 systemowych. W przypadku GraphQL agreguj\u0119 na poziomie pola i buforuj\u0119 cz\u0119ste poddrzewa, aby z\u0142agodzi\u0107 zapytania N+1. \u0141\u0105cz\u0119 limity szybko\u015bci z buforowaniem, aby drogie agregacje nie by\u0142y ponownie obliczane bez zaznaczenia. Bufory brzegowe mog\u0105 przechowywa\u0107 odpowiedzi API regionalnie, o ile pozwalaj\u0105 na to wymagania dotycz\u0105ce sp\u00f3jno\u015bci.<\/p>\n\n<h2>Monitorowanie i mo\u017cliwo\u015b\u0107 obserwacji<\/h2>\n\n<p>Rozszerzam odpowiedzi o <strong>Nag\u0142\u00f3wek diagnostyczny<\/strong> (np. HIT\/MISS, Age, Revalidate), aby zobaczy\u0107 zachowanie w terenie. W dziennikach koreluj\u0119 kody stanu, TTFB i czasy upstream; nag\u0142y wzrost MISS z jednoczesnym szczytem CPU wskazuje na eksmisj\u0119 pami\u0119ci podr\u0119cznej lub wadliwe uniewa\u017cnienie. Oddzielam pulpity nawigacyjne wed\u0142ug poziomu: wykorzystanie OPcache, op\u00f3\u017anienia Redis, wska\u017anik trafie\u0144 pami\u0119ci podr\u0119cznej stron, wska\u017anik trafie\u0144 kraw\u0119dzi CDN i op\u00f3\u017anienia regionalne. Dla wyda\u0144 definiuj\u0119 SLO (np. 95. percentyl TTFB poni\u017cej X ms) i wycofuj\u0119, je\u015bli wska\u017aniki si\u0119 przechylaj\u0105. Uzupe\u0142niam kontrole syntetyczne monitorowaniem rzeczywistych u\u017cytkownik\u00f3w, aby obj\u0105\u0107 rzeczywiste urz\u0105dzenia i sieci.<\/p>\n\n\n<figure class=\"wp-block-image size-full is-resized\">\n  <img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/webhosting.de\/wp-content\/uploads\/2025\/10\/hosting-caching-ebenen-7142.png\" alt=\"\" width=\"1536\" height=\"1024\"\/>\n<\/figure>\n\n\n<h2>Dzia\u0142anie, koszty i skalowanie<\/h2>\n\n<p>Optymalizuj\u0119 r\u00f3wnie\u017c TTL pod <strong>Aspekty zwi\u0105zane z kosztami<\/strong>D\u0142u\u017csze TTL CDN zwi\u0119kszaj\u0105 wsp\u00f3\u0142czynnik trafie\u0144 kraw\u0119dzi i zmniejszaj\u0105 ruch \u017ar\u00f3d\u0142owy, ale zmniejszaj\u0105 okna oczyszczania. Kr\u00f3tkie TTL zwi\u0119kszaj\u0105 transfer i obci\u0105\u017cenie. Oczyszczanie kontroluje si\u0119 precyzyjnie (wed\u0142ug tagu\/klucza), a nie globalnie, aby unikn\u0105\u0107 zimnych start\u00f3w na kraw\u0119dziach. W przypadku konfiguracji wieloregionalnych bior\u0119 pod uwag\u0119 czasy replikacji, aby jeden region nie pozostawa\u0142 nie\u015bwie\u017cy, podczas gdy drugi jest ju\u017c \u015bwie\u017cy. Planuj\u0119 pojemno\u015b\u0107 na wypadek awarii (autoskalowanie, burst RAM) i utrzymuj\u0119 w gotowo\u015bci trasy awaryjne, kt\u00f3re pozostaj\u0105 wydajne ze znacznie uproszczonymi reakcjami nawet w przypadku cz\u0119\u015bciowych awarii. Dzi\u0119ki temu system jest ekonomiczny i <strong>solidny<\/strong>.<\/p>\n\n<h2>SEO i podstawowe funkcje internetowe<\/h2>\n\n<p>Ulepszono intensywne korzystanie z pami\u0119ci podr\u0119cznej <strong>TTFB<\/strong> a nast\u0119pnie LCP, co ma pozytywny wp\u0142yw na zadowolenie u\u017cytkownik\u00f3w i bud\u017cet indeksowania. Wa\u017cne jest, aby buforowanie nie dostarcza\u0142o nieaktualnych metadanych, kanonicznych lub wariant\u00f3w hreflang. Oddzielam pami\u0119\u0107 podr\u0119czn\u0105 HTML od wysoce niestabilnych cz\u0119\u015bci i nadaj\u0119 priorytet aktualizacji krytycznych stron (strona g\u0142\u00f3wna, kategorie). W przypadku ruchu bot\u00f3w ustawiam realistyczne TTL i unikam niepotrzebnych odpowiedzi 304, utrzymuj\u0105c \u015bwie\u017co\u015b\u0107 tre\u015bci zamiast ponownego sprawdzania poprawno\u015bci ka\u017cdego \u017c\u0105dania. Dzi\u0119ki temu strona jest szybka i sp\u00f3jna - dla ludzi i robot\u00f3w indeksuj\u0105cych.<\/p>\n\n<h2>Kr\u00f3tkie podsumowanie<\/h2>\n\n<p>Organizuj\u0119 <strong>Buforowanie<\/strong> strategiczny: najpierw przyspieszaj kod, potem dane, nast\u0119pnie strony, a na ko\u0144cu rozpowszechniaj globalnie. Taki harmonogram zapewnia wymiernie lepsze czasy \u0142adowania i oszcz\u0119dza koszty serwera. Utrzymuj\u0119 TTL, czystki i wyj\u0105tki w czystej dokumentacji, aby wydania przebiega\u0142y p\u0142ynnie. Metryki takie jak wsp\u00f3\u0142czynnik trafie\u0144, TTFB i op\u00f3\u017anienie kraw\u0119dzi kieruj\u0105 moimi kolejnymi krokami. Je\u015bli konsekwentnie \u0142\u0105czysz te poziomy, tworzysz szybkie, skalowalne i niezawodne rozwi\u0105zania. <strong>Strony internetowe<\/strong>.<\/p>","protected":false},"excerpt":{"rendered":"<p>Dowiedz si\u0119 wszystkiego, co musisz wiedzie\u0107 o centralnych poziomach buforowania w hostingu - od opcode do CDN cache. Dla najlepszej wydajno\u015bci i zoptymalizowanego hostingu!<\/p>","protected":false},"author":1,"featured_media":13978,"comment_status":"","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_crdt_document":"","inline_featured_image":false,"footnotes":""},"categories":[733],"tags":[],"class_list":["post-13985","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress"],"acf":[],"_wp_attached_file":null,"_wp_attachment_metadata":null,"litespeed-optimize-size":null,"litespeed-optimize-set":null,"_elementor_source_image_hash":null,"_wp_attachment_image_alt":null,"stockpack_author_name":null,"stockpack_author_url":null,"stockpack_provider":null,"stockpack_image_url":null,"stockpack_license":null,"stockpack_license_url":null,"stockpack_modification":null,"color":null,"original_id":null,"original_url":null,"original_link":null,"unsplash_location":null,"unsplash_sponsor":null,"unsplash_exif":null,"unsplash_attachment_metadata":null,"_elementor_is_screenshot":null,"surfer_file_name":null,"surfer_file_original_url":null,"envato_tk_source_kit":null,"envato_tk_source_index":null,"envato_tk_manifest":null,"envato_tk_folder_name":null,"envato_tk_builder":null,"envato_elements_download_event":null,"_menu_item_type":null,"_menu_item_menu_item_parent":null,"_menu_item_object_id":null,"_menu_item_object":null,"_menu_item_target":null,"_menu_item_classes":null,"_menu_item_xfn":null,"_menu_item_url":null,"_trp_menu_languages":null,"rank_math_primary_category":null,"rank_math_title":null,"inline_featured_image":null,"_yoast_wpseo_primary_category":null,"rank_math_schema_blogposting":null,"rank_math_schema_videoobject":null,"_oembed_049c719bc4a9f89deaead66a7da9fddc":null,"_oembed_time_049c719bc4a9f89deaead66a7da9fddc":null,"_yoast_wpseo_focuskw":null,"_yoast_wpseo_linkdex":null,"_oembed_27e3473bf8bec795fbeb3a9d38489348":null,"_oembed_c3b0f6959478faf92a1f343d8f96b19e":null,"_trp_translated_slug_en_us":null,"_wp_desired_post_slug":null,"_yoast_wpseo_title":null,"tldname":null,"tldpreis":null,"tldrubrik":null,"tldpolicylink":null,"tldsize":null,"tldregistrierungsdauer":null,"tldtransfer":null,"tldwhoisprivacy":null,"tldregistrarchange":null,"tldregistrantchange":null,"tldwhoisupdate":null,"tldnameserverupdate":null,"tlddeletesofort":null,"tlddeleteexpire":null,"tldumlaute":null,"tldrestore":null,"tldsubcategory":null,"tldbildname":null,"tldbildurl":null,"tldclean":null,"tldcategory":null,"tldpolicy":null,"tldbesonderheiten":null,"tld_bedeutung":null,"_oembed_d167040d816d8f94c072940c8009f5f8":null,"_oembed_b0a0fa59ef14f8870da2c63f2027d064":null,"_oembed_4792fa4dfb2a8f09ab950a73b7f313ba":null,"_oembed_33ceb1fe54a8ab775d9410abf699878d":null,"_oembed_fd7014d14d919b45ec004937c0db9335":null,"_oembed_21a029d076783ec3e8042698c351bd7e":null,"_oembed_be5ea8a0c7b18e658f08cc571a909452":null,"_oembed_a9ca7a298b19f9b48ec5914e010294d2":null,"_oembed_f8db6b27d08a2bb1f920e7647808899a":null,"_oembed_168ebde5096e77d8a89326519af9e022":null,"_oembed_cdb76f1b345b42743edfe25481b6f98f":null,"_oembed_87b0613611ae54e86e8864265404b0a1":null,"_oembed_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_oembed_time_27aa0e5cf3f1bb4bc416a4641a5ac273":null,"_tldname":null,"_tldclean":null,"_tldpreis":null,"_tldcategory":null,"_tldsubcategory":null,"_tldpolicy":null,"_tldpolicylink":null,"_tldsize":null,"_tldregistrierungsdauer":null,"_tldtransfer":null,"_tldwhoisprivacy":null,"_tldregistrarchange":null,"_tldregistrantchange":null,"_tldwhoisupdate":null,"_tldnameserverupdate":null,"_tlddeletesofort":null,"_tlddeleteexpire":null,"_tldumlaute":null,"_tldrestore":null,"_tldbildname":null,"_tldbildurl":null,"_tld_bedeutung":null,"_tldbesonderheiten":null,"_oembed_ad96e4112edb9f8ffa35731d4098bc6b":null,"_oembed_8357e2b8a2575c74ed5978f262a10126":null,"_oembed_3d5fea5103dd0d22ec5d6a33eff7f863":null,"_eael_widget_elements":null,"_oembed_0d8a206f09633e3d62b95a15a4dd0487":null,"_oembed_time_0d8a206f09633e3d62b95a15a4dd0487":null,"_aioseo_description":null,"_eb_attr":null,"_eb_data_table":null,"_oembed_819a879e7da16dd629cfd15a97334c8a":null,"_oembed_time_819a879e7da16dd629cfd15a97334c8a":null,"_acf_changed":null,"_wpcode_auto_insert":null,"_edit_last":null,"_edit_lock":null,"_oembed_e7b913c6c84084ed9702cb4feb012ddd":null,"_oembed_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_time_bfde9e10f59a17b85fc8917fa7edf782":null,"_oembed_03514b67990db061d7c4672de26dc514":null,"_oembed_time_03514b67990db061d7c4672de26dc514":null,"rank_math_news_sitemap_robots":null,"rank_math_robots":null,"_eael_post_view_count":"2178","_trp_automatically_translated_slug_ru_ru":null,"_trp_automatically_translated_slug_et":null,"_trp_automatically_translated_slug_lv":null,"_trp_automatically_translated_slug_fr_fr":null,"_trp_automatically_translated_slug_en_us":null,"_wp_old_slug":null,"_trp_automatically_translated_slug_da_dk":null,"_trp_automatically_translated_slug_pl_pl":null,"_trp_automatically_translated_slug_es_es":null,"_trp_automatically_translated_slug_hu_hu":null,"_trp_automatically_translated_slug_fi":null,"_trp_automatically_translated_slug_ja":null,"_trp_automatically_translated_slug_lt_lt":null,"_elementor_edit_mode":null,"_elementor_template_type":null,"_elementor_version":null,"_elementor_pro_version":null,"_wp_page_template":null,"_elementor_page_settings":null,"_elementor_data":null,"_elementor_css":null,"_elementor_conditions":null,"_happyaddons_elements_cache":null,"_oembed_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_time_75446120c39305f0da0ccd147f6de9cb":null,"_oembed_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_time_3efb2c3e76a18143e7207993a2a6939a":null,"_oembed_59808117857ddf57e478a31d79f76e4d":null,"_oembed_time_59808117857ddf57e478a31d79f76e4d":null,"_oembed_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_time_965c5b49aa8d22ce37dfb3bde0268600":null,"_oembed_81002f7ee3604f645db4ebcfd1912acf":null,"_oembed_time_81002f7ee3604f645db4ebcfd1912acf":null,"_elementor_screenshot":null,"_oembed_7ea3429961cf98fa85da9747683af827":null,"_oembed_time_7ea3429961cf98fa85da9747683af827":null,"_elementor_controls_usage":null,"_elementor_page_assets":[],"_elementor_screenshot_failed":null,"theplus_transient_widgets":null,"_eael_custom_js":null,"_wp_old_date":null,"_trp_automatically_translated_slug_it_it":null,"_trp_automatically_translated_slug_pt_pt":null,"_trp_automatically_translated_slug_zh_cn":null,"_trp_automatically_translated_slug_nl_nl":null,"_trp_automatically_translated_slug_pt_br":null,"_trp_automatically_translated_slug_sv_se":null,"rank_math_analytic_object_id":null,"rank_math_internal_links_processed":null,"_trp_automatically_translated_slug_ro_ro":null,"_trp_automatically_translated_slug_sk_sk":null,"_trp_automatically_translated_slug_bg_bg":null,"_trp_automatically_translated_slug_sl_si":null,"litespeed_vpi_list":null,"litespeed_vpi_list_mobile":null,"rank_math_seo_score":null,"rank_math_contentai_score":null,"ilj_limitincominglinks":null,"ilj_maxincominglinks":null,"ilj_limitoutgoinglinks":null,"ilj_maxoutgoinglinks":null,"ilj_limitlinksperparagraph":null,"ilj_linksperparagraph":null,"ilj_blacklistdefinition":null,"ilj_linkdefinition":null,"_eb_reusable_block_ids":null,"rank_math_focus_keyword":"caching ebenen","rank_math_og_content_image":null,"_yoast_wpseo_metadesc":null,"_yoast_wpseo_content_score":null,"_yoast_wpseo_focuskeywords":null,"_yoast_wpseo_keywordsynonyms":null,"_yoast_wpseo_estimated-reading-time-minutes":null,"rank_math_description":null,"surfer_last_post_update":null,"surfer_last_post_update_direction":null,"surfer_keywords":null,"surfer_location":null,"surfer_draft_id":null,"surfer_permalink_hash":null,"surfer_scrape_ready":null,"_thumbnail_id":"13978","footnotes":null,"_links":{"self":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/13985","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/comments?post=13985"}],"version-history":[{"count":0,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/posts\/13985\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media\/13978"}],"wp:attachment":[{"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/media?parent=13985"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/categories?post=13985"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/webhosting.de\/pl\/wp-json\/wp\/v2\/tags?post=13985"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}