Klávesové zkratky na tomto webu - rozšířené Na obsah stránky

Změny na stránkách

19.28 - 19. května 2008 | Moje práce

První viditelnou změnou je úprava RSS exportu, odedneška se budou v hlavním feedu zobrazovat celé články. Pokud chcete v mém feedu i nadále pouze perexy, použijte adresu http://feeds.feedburner.com/rarous/weblog. Je to experiment, ve kterém si chci ověřit, jaký vliv to bude mít na návštěvnost – čtenost článků. Druhým důvodem je Technorati – doufám, že tak začne indexovat tagy.

V rámci optimalizace výkonu homepage jsem všechny agregované feedy hodil do FeedBurneru, který jim dokáže nastavit cachovací hlavičky a hlavně ETag, kterej např. google nikam nedává. Navíc má mnohem kratší odezvy.

Teď mám na hlavní stránce celkem tři úrovně cachování.

  1. Veřejné. Stránka má nastavené cahování u klienta a po cestě na dvě minuty – její rychlejší aktualizaci nečekám a je to spíš ochrana proti zběsilému refreshování.
  2. Output cache na serveru. Využívám cachovacího mechanismu ASP.NET a vyredrovaná stránka se na serveru cachuje 5 minut. To má výhodu v tom, že se posílá odpověď 304, když se obsah nezměnil.
  3. Cachování agregovaných dat. Když načtu feed, uložím si ho pod jeho ETagem do cache na 45 minut. Při dalším dotazu se pošle požadavek HEAD a stáhnou se jen hlavičky. Pokud se změnil ETag, tak ho v cache nenajdu a musím data načíst GETem.

Myslím, že teď je to celkem účinné, ale stejně ještě přijde časem jedna změna, kdy se o načítání feedů nebude starat Controller, ale na pozadí poběží task, který bude agregovat podobně jako služba Weblogy.cz.

Hlavička Pragma a její místo v HTML

09.51 - 17. května 2008 | Webdesign

Velmi často se ve zdrojových kódech HTML stránek potkávám se zajímavým mýtem a to s následujícím ta­gem:

<meta http-equiv="pragma" content="no-cache">

Autor se tím pravděpodobně pokouší docílit toho, aby se jeho stránka necachovala. Přejdu-li to, že vypnutí cachování je nesmysl už z pohledu škálování výkonu webové aplikace, tak stejně užití pragmy nemá hlubšího významu.

Proč je použití Pragma:no-cache nesmysl

  1. Hlavička Pragma s hodnotou no-cache je součástí specifikace HTTP 1.1 z historic­kých důvodů a je dnes plně nahrazena hlavičkou Cache-Control.
  2. Hlavička Pragma je pouze hlavičkou požadavku a v odpovědi nemá opodstatnění.

Hlavičku Pragma:no-cache posílali klienti HTTP/1.0 když nechtěli dostat cachovanou odpověď z lokální nebo proxy cache, ale přímo od serveru, který volali. Posílat ji tedy v odpovědi (natož v HTML) nemá žádný význam. Někdo by mohl podotknout, že mu to funguje. Mícrosoft na to říká: strkejte si pragmu do HTML, ale my vás stejně budem cachovat. Mozilla raději řídí cachování pomocí HTTP hlaviček a tento tag také ignoruje.

Závěr

Nejprve si rozmyslete, zda je pro vás zakázání cachování opravdu přínosné – v 99% případů nebude. Pokud stejně nebudete chtít cachovat (každý požadavek bude váš server muset vždy zpracovat, bude muset protéct po vaší lince atd.), posílejte HTTP hlavičku Cache-control s hodnotou no-cache. Vkládání do meta stránky nemá opodstatnění, zbytečně tak zvětšíte opověď a prohlížeče to stejně většinou ignorují.

Tagy: , ,