Jak działa sieć WWW - problem statystyk

Ta strona opisuje co dzieje się, gdy ktoś łączy się na Twoją stronę oraz jakie dane statystyczne możesz (lub nie możesz) na tej podstawie uzyskać. Występuje wiele rozbieżności odnośnie tego zagadnienia. Ich uproszczeniu nie sprzyjają programy do tworzenia statystyk, które podają rzeczy, których w rzeczywistości nie da się wyliczyć dokładnie - można je jedynie oszacować przy różnym poziomie dokładności. Podstawowym faktem jest to, że pewne dane, które chcielibyśmy szybko uzyskać nie są dostępne w prosty sposób.

1. Model podstawowy

Przypuśćmy, że odwiedzam Twoją stronę WWW. Klikam w link z innego serwisu prowadzący do Twojej głównej strony, oglądam kilka podstron, po czym klikam w jakiś link prowadzący do innego serwera.

A zatem, co w tym momencie wiesz o mnie? Najpierw dokonałem zapytania o stronę główną. W logach Twojego serwera pojawia się wpis zawierający datę i czas połączenia, nazwę wysyłanego pliku, adres IP mojego komputera. Często możesz też uzyskać informację o odsyłaczu i typie mojej przeglądarki. Nie masz możliwości uzyskania mojego imienia albo adresu e-mail.

Następnie przeglądarka sprawdza, czy istnieją jakieś grafiki na stronie, której zażądałem. Jeśli tak - wysyła ona kolejne zapytania w celu ich pobrania. Jedno zapytanie przypada więc na każdy plik - niezależnie czy jest to plik typu HTML, GIF, JPG czy ZIP. Załóżmy, że strona zawierała 10 rysunków - jak dotychczas wysłałem 11 zapytań do Twojego serwera.

Po jakimś czasie odwiedzam inne Twoje strony wysyłając nowe zapytanie z każdym plikiem, który ściągam (tekst, grafika). Wreszcie klikam w link prowadzący do innego serwera. Nigdy nie wiesz o tym, że to zrobiłem. Rozłączam się nie informując Ciebie o tym.

2. Mity na temat statystyk - jakich informacji nie da się uzyskać?

  1. Nie możesz zidentyfikować swoich klientów. O ile nie wymagasz od użytkowników uprzedniego logowania się do Twojej strony poprzez podanie identyfikatora i hasła - nie możesz precyzyjnie stwierdzić kto się łączył i jaki był jego adres e-mail.
  2. Nie możesz stwierdzić ilu miałeś użytkowników. Możesz zgadywać patrząc na liczbę różnych hostów, które łączyły się do Twojego serwera. Ale zwykle nie jest to dobre oszacowanie z następujących przyczyn:
  3. Nie możesz obliczyć ile miałeś odwiedzin. Wiele programów, pod naciskiem firm reklamowych, definiuje "wizytę" (lub "sesję") jako sekwencję zapytań pochodzących od tego samego hosta do momentu kiedy nie nastąpi półgodzinna przerwa. Metoda ta jest niepewna z kilku powodów. Po pierwsze, zakłada ona, że jeden host przypisany jest jednej osobie i na odwrót. W rzeczywistości nie jest to prawdą - objaśniono to w poprzednim punkcie. Po drugie, zakłada też, że nigdy nie ma dłuższej przerwy niż pół godziny między kolejnymi odwołaniami. To również nieprawda. Często klikam na link prowadzący do innego serwera i potem wracam do Twojej strony kontynuując przeglądanie. Chyba nie powinno mieć znaczenia czy dokonam tego 29 czy 31 minut później.
  4. Cookies nie są rozwiązaniem problemu. Niektórzy próbują liczyć odwiedziny przy pomocy cookies. Ale zadziała to tylko wtedy, jeśli odmówisz przeczytania stron przeglądarkom, które nie zaakceptowały cookie.
  5. Nie możesz wyśledzić precyzyjnie ścieżki, jaką ktoś wędrował przez Twoje strony. Nawet jeśli założysz, że danej osobie odpowiada tylko jeden host, nie jesteś w stanie określić jego ścieżki w obrębie serwisu. Bardzo często ludzie wracają do stron, które ściągnęli już wcześniej. Nie dowiesz się o tych kolejnych wizytach, ponieważ przeglądarka pobiera dane z cache'a. W związku z tym nie możesz precyzyjnie śledzić drogi użytkowników.
  6. Często nie możesz stwierdzić którędy użytkownik dostał się do Twojej strony ani skąd zdobył adres. Jeśli używa on cache'a, często będzie mógł ściągnąć stamtąd główną stronę, ale podstrony zwykle będzie pobierał z Twojego serwera. Zatem, pierwsza strona, o której będziesz wiedział zostanie ściągnięta w połowie prawdziwej wizyty.
  7. Nie dowiesz się w jaki sposób użytkownik opuścił Twoją stronę ani jaki adres odwiedził później. Nigdy nie jesteś informowany o połączeniu do innego serwera - więc nie możesz uzyskać takich danych.
  8. Trudno obliczyć ile czasu spędził ktoś oglądając Twoją stronę. Użytkownik mógł w tym czasie otworzyć inną stronę, obejrzeć stronę ściągniętą wcześniej lub też pograć w Sapera. Tego po prostu nie wiesz.
Podsumowując powyższe punkty należy zwrócić uwagę na fakt, iż HTTP jest protokołem "bezstanowym". Użytkownicy nie logują się w celu ściągnięcia kilku dokumentów; wykonują osobne połączenia dla każdego z nich. Nie zachowują się oni również w sposób typowy dla protokołów "z logowaniem " (telnet, ftp). Stąd takie programy jak analog unikają stosowania terminu "wizyta" na rzecz "zapytania".

3. Jakie dane można łatwo uzyskać z serwera WWW?

  1. Liczbę, czas zapytań do serwera.
  2. Nazwy pobieranych plików.
  3. Nazwy hostów łączących się do serwera.
  4. Przeglądarki WWW, z których korzystają użytkownicy.
  5. Odsyłacze - adresy stron, na których znajduje się link do Twojej strony.
Należy pamiętać o tym, że niektóre przeglądarki nie podają swojej prawdziwej nazwy, jak też nie pozwalają na przekazywanie adresów odsyłaczy.

Przedstawiłem w tym dokumencie dość negatywny pogląd odnośnie statystyk WWW kładąc nacisk na dane, których nie możesz uzyskać. Mimo to statystyki mają nadal walory informacyjne; ważne jest jednak rozróżnianie pojęć "ta strona miała 30000 zapytań" i "30000 osób przeczytało tę stronę".

4. Jak interpretować dane z Webalizer'a?

Webalizer posługuje się wieloma pojęciami, które mogą na pierwszy rzut oka wydać się niezrozumiałe. Poniżej przytaczam listę słów kluczowych używanych przez ten program - zarówno w wersji polskiej jak i angielskiej.
Zapytania (Hits)
Ilość żądań wysłanych przez przeglądarki do serwera WWW w badanym okresie. Należy pamiętać, że każdy plik - zarówno HTML, JPEG jak i ZIP jest liczony jako zapytanie.
Pliki (Files)
Jest to liczba zapytań zrealizowanych przez serwer w badanym okresie. Dlaczego jest ona zwykle niższa niż liczba zapytań? Odpowiedź na to pytanie znajdziemy w szczegółowych statystykach dla danego miesiąca w tabeli Zapytania wg. kodu odpowiedzi (Hits by response code). Kod 200 odpowiada standardowemu zrealizowaniu zapytania, pozostałe pełnią funkcję informacyjną, jeśli plik nie został przesłany. Przyczyną tego może być błąd (np. brak na serwerze żądanego pliku - kod 404), ale w większości wypadków znaczna różnica między ogólną liczbą zapytań a liczbą wysłanych plików ukrywa się w pozycji 304 (Nie zmodyfikowany). Jest to normalna sytuacja wynikająca z opisywanego już wcześniej zjawiska cache'owania plików. Przeglądarka lub serwer w3cache może sprawdzać okresowo czy plik, który przechowuje na lokalnym dysku nie zmienił się w międzyczasie na serwerze, wysyłając odpowiednio sformatowane zapytanie. Serwer odpowiada wówczas odpowiednim kodem - zmodyfikowany bądź nie zmodyfikowany.
Duża liczba innych kodów - np. 404 (Nie znaleziony) może świadczyć o źle skonstruowanych stronach zawierających "puste linki", czyli nie prowadzące do istniejących plików.
Strony (Pages)
Ponieważ nie zawsze interesuje nas informacja dotycząca plików "ozdobnych" np. GIF, ta liczba pokazuje ilość pobranych stron WWW, przy czym administrator statystyk może regulować jakie pliki traktowane są jako strony. Zwykle wybierane są nazwy o rozszerzeniach .html i .htm.
Wizyty (Visits)
To pojęcie omówiłem już dokładnie w rozdziale 2. Webalizer stara się wyróżnić poszczególne sesje danego użytkownika mierząc czas między kolejnymi zapytaniami od danego komputera. Jeśli czas ten jest dłuższy niż pół godziny (można tę wartość regulować) sesja uznawana jest za zakończoną i doliczana jest jedna wizyta w statystykach. Jak już stwierdziłem wcześniej, dane te należy traktować jako pewne przybliżenie prawdziwej liczby wizyt.
Hosty (Sites)
Trudno znaleźć krótkie, proste tłumaczenie tego wyrazu - chodzi o komputer podłączony do Internetu. Nie ma w tym wypadku znaczenia, czy pełni on funkcję klienta czy serwera; czy jest podłączony tymczasowo czy na stałe. Podstawowym wyróżnikiem hosta jest jego numer IP (np. 212.244.218.129) oraz nazwa w DNS (np. vito.mwd.com.pl). Na tej podstawie tworzone są tabele ze szczegółowego miesięcznego raportu dotyczące hostów i krajów, z których łączą się użytkownicy. Jak wcześniej wyjaśniłem - jeden host nie musi oznaczać jednego użytkownika.
KB (KBytes)
Suma wielkości wszystkich ściągniętych w danych okresie plików wyrażona w kilobajtach. Jest miarą obciążenia serwera i łącza.
URL
Uniform Resource Locator - kompletny adres zasobu wyrażony w konwencji: protokół://adres.serwera:port/katalog/nazwa.pliku. Liczba URLi to liczba różnych plików pobranych z serwera w badanym okresie. Jest to zatem pewna miara wielkości serwisu - w długim okresie powinna ona być zbliżona do całkowitej liczby plików znajdujących się na serwerze.
Odsyłacze (Referrers)
Jeśli trafiamy na jakąś stronę w wyniku kliknięcia w link na innej stronie przeglądarka może informować serwer o adresie, który nas zaprowadził w to miejsce. Można ocenić w ten sposób np. skuteczność indeksowania naszych stron przez wyszukiwarki (AltaVista, Yahoo). Niestety nie zawsze działa to prawidłowo - nie każda przeglądarka obsługuje ten standard, jak też serwery WWW wymagają specjalnych ustawień.
Przeglądarki (User agents)
Nazwa programu używanego przez klienta, np.: Mozilla/4.61 [en] (X11; U; Linux 2.0.37 i586). Jak widać jest to dość pełna informacja nie tylko o typie przeglądarki (Netscape Navigator 4.61, wersja angielska), ale również o systemie operacyjnym (Linux 2.0.37) i platformie sprzętowej (i586 - czyli zgodny z Pentium). Nie wszystkie przeglądarki przekazują serwerowi te informacje; niektóre nawet podszywają się pod inne.
Strony wejściowe (Entry pages)
Strony, które zwykle są otwierane na początku sesji - pierwsze na jakie trafia użytkownik. Podobnie jak liczba wizyt ta wartość jest obarczona dużym błędem.
Strony wyjściowe (Exit pages)
Ostatnie strony jakie są zwykle oglądane podczas sesji. Po ich obejrzeniu użytkownik nie korzysta przez dłuższy czas z naszego serwisu. Wartość jest oczywiście przybliżona.
Wyrażenia wyszukiwawcze (Search strings)
Webalizer potrafi "wyciągnąć" z pola Odsyłacz (Referrer) informację jakie wyrażenie wprowadził użytkownik w celu wyszukania naszego serwisu w jednej z popularnych wyszukiwarek. Obecnie obsługiwane są takie serwery jak AltaVista, Yahoo, Excite i inne.

5. Jak interpretować dane z Analoga?

6. Inne źródła informacji

Dokumentacja do Analog'a
Interpreting WWW Statistics
Getting Real about Usage Statistics
Why Web Usage Statistics are (Worse Than) Meaningless

Dodatek A. Objaśnienie wybranych terminów

© Marcin Sochacki