Hlavní navigace

Proxy cache z pohledu druhé strany

1. 6. 1998
Doba čtení: 7 minut

Sdílet

Pavel Satrapa, známá osobnost českého Internetu, který je mimo jiné členem cache skupiny CESNETu, nám přispěl svým článkem k aktuálním diskusi o proxy cache serverech. Doporučuji přečíst, skutečně se jedná o velmi zajímavý příspěvek.
V poslední době rozvířila hladinu českého Internetu instalace transparentního WWW proxy cache serveru v síti TEN-34 CZ. Servery Lupa, Svět namodro a možná i některé další publikovaly na toto téma několik příspěvků. Přesto mi připadá, že k dané problematice je ještě co říci a že je třeba vyvrátit některé pochybené názory z uvedených příspěvků.

Než se pustím do obecnějších úvah, dovolím si prezentovat několik skutečností o nasazení transparentního proxy cache serveru.

Fakta

Jsem členem skupiny, která se v rámci projektu TEN-34 CZ zabývá problematikou WWW proxy cache serverů. Jedním z jejích cílů je prozkoumat různé technické i organizační alternativy nasazení této technologie a doporučit vhodné řešení pro síť TEN-34 CZ a její případné následníky.

Zajímavým produktem z této oblasti je zařízení Cache Engine firmy Cisco. Jelikož se jedná o zcela nové zařízení, skupina měla pochopitelně eminentní zájem na vyzkoušení jeho schopností, vlastností a výkonů. Abychom prověřili chování v reálném provozu, rozhodli jsme se je instalovat na linku s netriviálním objemem provozu. Konkrétně padla volba na linku mezi TEN-34 CZ a NIXem. Zároveň jsme tak chtěli vyzkoušet, jaké přínosy a komplikace by přineslo nasazení transparentního proxy cache serveru na této úrovni, kdy jím prochází veškerý provoz z velké sítě.

Instalace Cisco Cache Engine tedy byla experimentální a dočasná. Zařízení jsme měli pouze zapůjčeno do konce května, což byl také horní limit pro trvání experimentů. O jeho případném rutinním nasazení se teprve rozhodne na základě zkušeností z daného experimentu.

Je proxy cache server legální?

Tvrzení, že proxy cache server vytváří nelegální kopie přepravovaných dokumentů a tudíž porušuje autorský zákon, mi připadá silně přitažené za vlasy. Podle mého soudu poskytovatelé obsahu (jimž tyto servery poněkud komplikují život) chtějí psa bít a tudíž usilovně hledají hůl.

Ke slovu „kopie“ spíše než nelegální patří přídavná jména „pracovní“, „dočasná“ a „transparentní“. Je třeba si uvědomit, že kopie uložená v proxy cache serveru nemá vlastní URL a uživatel se k ní může dostat jediným způsobem: když požádá o URL z cílového serveru. Je pouze vlastností přenosového mechanismu mezi klientem a serverem, že dokument nebude fyzicky přenesen až ze serveru, ale z jakéhosi provozního meziskladu, který leží po cestě.

Někteří poskytovatelé obsahu se snaží proxy cache server prezentovat jako ďábelský vynález poskytovatelů Internetu, který jim škodí, protože komplikuje zjišťování návštěvnosti jejich stránek. A to všechno kvůli tomu, že poskytovatelé Internetu chtějí ušetřit na kapacitě linek.

Opak je však pravdou. Proxy cache servery jsou totiž nedílnou součástí přenosového protokolu HTTP, který služba WWW používá. Jejich existence je výslovně zakotvena v definici HTTP. Zcela konkrétně RFC 1945, které definuje HTTP verze 1.0, v posledním odstavci na straně 6 uvádí „libovolný účastník komunikace s výjimkou tunelů může být vybaven vyrovnávací pamětí, aby se zkrátila cesta k vyřízení dotazu“. Překlad je volný, ale vystihuje myšlenku.

O vztahu HTTP verze 1.1 k proxy cache serverům nejlépe svědčí skutečnost, že celá jedna kapitola v RFC 2068 (konkrétně kapitola 13 o rozsahu 24 stran) se nazývá Caching in HTTP. Zavedení hlavičky Cachecontrol také o něčem svědčí. Ostatně zlepšení komunikace s proxy cache servery bylo jedním z cílů při vývoji HTTP 1.1.

Poskytovatelé obsahu jistě nebyli ničím nuceni vybrat si pro prezentaci svých dat zrovna WWW. Pokud to však učinili, nemohou si nyní z dané služby vybírat jen ty vlastnosti, které se jim hodí. Je to asi stejně logické, jako objednat si v restauraci čaj s rumem a pak se rozčilovat na číšníka, že v tom je alkohol.

Na proxy cache servery je třeba pohlížet jako na součást přenosového mechanismu, nikoli jako na samostatné objekty poskytující WWW stránky. Pokud tedy někdo napadá jejich legalitu, snaží se vlastně postavit mimo zákon protokol HTTP. V takovém případě si ale řeže větev, na které sedí.

Jak s nimi žít

Na protestech proti proxy cache serverům mne nejvíce fascinuje, že se jedná o technologii starou, zcela obvyklou a standardní. Jsou používány již drahnou dobu nejrůznějšími institucemi a na nejrůznějších úrovních. Pokud současné metody pro sledování návštěvnosti WWW stránek s jejich existencí nepočítají, nedává to jejich autorům zrovna dobré vysvědčení.

Jelikož je přítomnost vyrovnávacích pamětí na nejrůznějších úrovních zakotvena v definici HTTP, jsou zde samozřejmě zmíněny i mechanismy pro ovlivňování jejich činnosti. Zmíním se pouze o možnostech HTTP verze 1.0. Novější HTTP 1.1 nabízí mnohem víc, ale tato verze zatím není dostatečně rozšířena.

Odesílající WWW server může data opatřit HTTP hlavičkou

Pragma: nocache

Takový dokument je zakázáno ukládat do vyrovnávacích pamětí jakéhokoli druhu. Máte tedy jistotu, že každý dotaz na něj dorazí až k mateřskému WWW serveru a případnými proxy cache servery po cestě bude pouze protékat bez uložení. Obdobně je zakázáno ukládat dokumenty, jejichž získání bylo podmíněno autentifikací uživatele. To zabraňuje obcházení autentifikačních mechanismů.

Většina proxy cache serverů je také konfigurována tak, aby nebyly ukládány dokumenty, jejichž cesta v URL začíná /cgibin/ nebo obsahuje ?. Tyto příznaky totiž typicky nesou dynamicky generované dokumenty, které vznikly reakcí na dotaz uživatele. Jejich uložení v proxy cache serveru nemá rozumný smysl.

Pokud vás netrápí obava o počítání přístupů ke stránce, ale spíše o aktuálnost jejího obsahu, můžete využít HTTP hlavičku Expires. Jestliže ji odesílající WWW server přibalí k dokumentu, vyznačí tak horní mez pro jeho platnost. Je-li aktuální čas vyšší než údaj z hlavičky Expires, musí proxy cache server považovat dokument za neaktuální a požadovat na původním WWW serveru jeho současný stav.

Ostatně ani automatická pravidla pro určování aktuálnosti dokumentů nejsou k zahození. Program Squid, který využívá většina proxy cache serverů, jej například určuje procentem ze stáří dokumentu (rozdíl mezi okamžikem poslední změny a aktuálním časem). Čili mladý dokument bude mít krátkou dobu platnosti.

Jak počítat přístupy

Pominemeli námitky stran nelegálnosti proxy cache serverů, směřují hlavní výtky poskytovatelů obsahu na těžší vypracovávání statistik přístupů k jejich stránkám. To je sice pochopitelné, ale proxy cache servery nejsou jediná zařízení, která tuto věc komplikují.

Především je třeba si přiznat, že neexistuje způsob, jak určit to nejzajímavější číslo: kolik lidí četlo danou stránku. Dokud nebudou všeobecně rozšířeny a do Webu zataženy mechanismy typu elektronických podpisů a podobně, tento údaj prostě nelze získat.

Dají se spočítat pouze mnohem méně směrodatná čísla: počet různých IP adres, ze kterých byla stránka navštívena, a celkový počet přístupů k dané stránce. První z těchto dvou čísel má dost nízkou vypovídací hodnotu. Kromě proxy cache serverů je zkreslují firewally, počítačové učebny, terminálové servery, sdílené počítače, X terminály, uživatelé s několika počítači a podobně. Pokud s jeho pomocí budete určovat počet návštěvníků, budou výsledky zatíženy chybou řádu desítek procent.

O něco výmluvnější je podle mne celkový počet přístupů ke stránce. Z něj se sice nedá počet návštěvníků určit vůbec, ale vypovídá alespoň o jakési všeobecné zajímavosti (pokud se jeden a tentýž člověk vrátí ke stránce dvacetkrát, jistě to nebude jen tak). Zde Černého Petra drží pouze vyrovnávací paměti (na serverech či klientech).

Existuje však poměrně jednoduchá metoda, jak s nepříliš velkou námahou a poměrně slušnými výsledky počítat návštěvníky. Stačí do stránky vložit obrázek generovaný CGI programem. Hlavním cílem dotyčného programu bude uložit informace o návštěvě stránky do souboru. Jako výsledek pak vyrobí buď průhledný GIF o velikosti 1 x 1 obrazovkový bod (čili nic) nebo oblíbené počítadlo přístupů. Cesta k programu bude začínat /cgibin/, takže nedojde k uložení jeho výsledku (to může navíc pojistit vygenerováním hlavičky Pragma: nocache) a při každé další návštěvě stránky se bude volat znovu.

Ze souboru, který program vyrobí, pak lze počítat jak IP adresy, tak celkové počty přísutpů. Jelikož někteří klienti posílají i Emailovou adresu svého uživatele, dalo by se této informace využít. Pokud například z téže IP adresy přišli tři různí uživatelé, jistě by bylo záhodno to zohlednit.

Tímto způsobem nebudou započítáni uživatelé s textovými klienty (mezi něž patří i prohledávací roboti) a s vypnutými obrázky. Ovšem těch je menšina a navíc jsou takoví uživatelé zjevně nekonvenční. Jelikož jsou počty přístupů využívány především v marketingové a obchodní oblasti, může paradoxně být jejich nezapočítání vlastně žádoucí.

Objevily se také požadavky na zpřístupnění protokolů o činnosti proxy cache serverů poskytovatelům obsahu. Nepovažuji je za reálné. Pokud by měli dostat kompletní protokol, jednalo by se o závažné porušení soukromí uživatelů daného cache serveru. Provozovatel cache serveru by tudíž musel protokol filtrovat a posílat správcům daného serveru jen data pro jejich stránky. Svět WWW je ale velmi dynamický, takže by se filtrovací pravidla a programy pro rozesílání musely modifikovat několikrát týdně na základě neustále přicházejících požadavků. To by však znamenalo netriviální objem práce a někdo (nejspíš poskytovatelé obsahu) by musel hradit náklady s tím spojené. Výsledný mechanismus by byl silně nepružný a objem vynaloženého úsilí by ani zdaleka neodpovídal dosaženým výsledkům.

Jediná rozumná cesta, jak zjišťovat návštěvnost stránek, je na straně serverů. Jednu možnost jsem naznačil, jinou je pořádání anket a statistických průzkumů. Těmi by se možná dalo propracovat i k nějakému fundovanému odhadu kýženého počtu čtenářů.

Pavel Satrapa

WT100

Související články:

* První odpověď na stanovisko APO
* APO se vyjadřuje k problému cache serveru na CESNETu
* CESNET v TENu zavádí novou cache a provozovatelé serverů prskají
* Jsou proxy cache nepřátelé lidstva?!
* Stanovisko CESNETu k provozu transparentní cache v síti TEN-34 CZ

* Kdo to chodí po českém Internetu?
* Kdo mi to loupe perníček?
* Boga jego

Autor článku

Autor dělá nepořádek v příslovích, protože sítě nejen dělá, ale i učí a dokonce také řídí. Působí na Ústavu nových technologií a aplikované informatiky na Technické univerzitě v Liberci. Píše knihy.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).