neděle 21. září 2008

Když si Firefox zapingá

Firefoxu 3 implementoval atribut ping z HTML5. Možná jste si toho ale vůbec nevšimli. To proto, že podpora pingání je po instalaci vypnuta. Pokud ji chcete zapnout, nastavte na stránce about:config předvolbu browser.send_pings na hodnotu true.

K čemu je takové pingání dobré? Pokud se pozorně podíváte prakticky na jakýkoliv vyhledávač, zjistíte, že na stránce s výsledky hledání pečlivě monitoruje, na které nalezené odkazy klikáte a na které ne.

(Úkol pro zvídavé: Podívejte se, jak takový monitoring dělá Google, jak Seznam a zamyslete se, proč je způsob zvolený Seznamem rychlejší, byť méně přesný. A také proč oba vyhledávače zapomněly na uživatele nepoužívající myš.)

Monitoring klikání na odkazy se ovšem nehodí jen pro vyhledávače. Když jsme kdysi v CZille přemýšleli, jak udělat počitadlo stažených Firefoxů z našich stánek, došli jsme také k pingacímu řešení. Prosté logování hitů na stahovaný soubor nelze použít, v tom se vám projeví i roboti.

Pingání
tak není jen pro velké firmy s vyhledávači, ale prakticky pro každého, kdo monitoruje pohyb uživatelů na svých stránkách. Předpokládám, že nástroje jako Google Analytics budou atribut ping po jeho zavedení také využívat.

Proč zavést ping atribut?

Pokud se některá technologie hojně používá a její použití (správný zápis) je zbytečně komplikované, mělo by se zjednodušit. Pokud jste se dívali, jak mají pingání implementováno i Googlu a Seznamu, asi uznáte, že o jednoduchosti se nedá hovořit. Jenže ono to zatím o moc líp udělat nejde.

A přesně to řeší atribut ping u odkazu (nebo u značky area). Jeho použití je snadné:

<a ping="http://www.example.cz/ping" href="http://www.example.cz/">Odkaz</a>

Pokud uživatel přejde na odkaz, je zároveň poslán požadavek na adresu uvedenou v atributu ping. Pokud je v atributu ping uvedeno více adres oddělených mezerou, pošle prohlížeče požadavek na všechny uvedené adresy.

Požadavek je zaslán metodou POST a pokud adresa v atributu ping a adresa aktuálního dokumentu jsou ze stejné domény, pošlou se v požadavku i další hlavičky: Ping-From a Ping-To (obsahuje adresu odkazu, na který uživatel přechází).

Výhody
  • Již zmíněná jednoduchost.
  • Přesnost - mechanismus funguje i pro uživatele bez myši, dokonce i pro uživatele bez JavaScriptu. (Přesnost pochopitelně bude platit jen v případě, že všechny prohlížeče atribut ping implementují.)
Implementace ve Firefoxu

Atribut ping byl zatím implementován jen ve Firefoxu 3. Jedná se spíše o implementační experiment sloužící pro zpětnou vazbu při tvorbě HTML5 specifikace a ve výchozí instalaci je vypnut.

Všiml jsem si, že Firefox posílá požadavek pouze na první adresu v atributu ping. Pokud je jich víc, ponechá ostatní bez odezvy (to je chyba v implementaci).

Soukromí uživatelů

A co na to uživatelé? Co když se jim takové sledování nebude líbit? Pokud byli paranoidní, pomohl jim vypnutý JavaScript, atribut ping ale funguje i bez JavaScriptu.

Myslím, že uživatelé můžou klidně spát. Pravděpodobně každý prohlížeč nabídne možnost atribut ping vypnout. Ať již pro běžné používání nebo v soukromém módu (přezdívaném porno mód), který se dnes již stal standardem a dříve či později jej budou obsahovat všechny prohlížeče.

Přesto se nemůžu zbavit pocitu, že se prohlížeče tomuto atributu vyhýbají. Jeho implementace je velmi jednoduchá, ale kromě Firefoxu se do ní zatím nikdo jiný nepustil. Že by byly opatrní a nechtěly být označeni za prohlížeč omezující soukromí uživatele? Kdo ví!

Žádné komentáře:

Okomentovat

Poznámka: Komentáře mohou přidávat pouze členové tohoto blogu.