Poskramiamy logi serwera HTTP
Kluczowym elementem w każdej kampanii reklamowej online jest analiza pozyskiwanych dzięki niej efektów. Jednym ze sposobów może być analiza logów serwera HTTP. Ale co to właściwie są te logi serwera HTTP?
Upraszczając, serwer to komputer, na którym umieszczona jest Twoja witryna. Serwer HTTP z kolei, to oprogramowanie (aplikacja), działające non-stop na tym komputerze. Zadaniem tego oprogramowania jest odpowiadanie na żądania przeglądarki internetowej każdego użytkownika. Kiedy użytkownik wpisuje coś w pole adresu swojej przeglądarki wysyła ona żądanie o dokument HTML do Twojego serwera (komputera). Właśnie serwer HTTP (aplikacja) odpowiada na żądania, innymi słowy wysyła kod źródłowy Twojej witryny (oraz obrazki i inne pliki) z powrotem do użytkownika.
Komunikacja pomiędzy przeglądarką a serwerem przypomina dialog pomiędzy dwiema osobami mówiącymi obcym językiem :). Na przykład, aby poprosić o stronę główną Magicznego, moja przeglądarka nawiązuje połączenie z serwerem i mówi:
GET / HTTP/1.1
Host: magiczne.seoisem.pl
User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13
Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5
Accept-Language: pl,en-us;q=0.7,en;q=0.3
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Cookie: PHPSESSID=2d6c15e0bcdee19a3ee1e2b46d65a353
Na co serwer odpowiada:
HTTP/1.x 200 OK
Date: Thu, 27 Mar 2008 19:05:00 GMT
Server: Apache
Vary: Host
X-Powered-By: PHP/5.2.6RC1-pl1-gentoo
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: private
Pragma: no-cache
Keep-Alive: timeout=15, max=98
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
Po tym Content-Type: text/html jest już od następnej linii dołączony kod HTML strony głównej. Przeglądarka go czyta i interpretuje. Jeśli w kodzie załączone są obrazki bądź inne pliki, przeglądarka wysyła żądania o każdy z nich osobno.
Komunikacja pomiędzy przeglądarką użytkownika, a Twoim serwerem jest logowana. Serwer HTTP skrzętnie notuje kto, co, kiedy, jak i gdzie :). Tak właśnie powstają logi serwera, czyli pliki tekstowe z zapisem wszystkich informacji. Pojedyncza linia wygląda na przykład tak:
111.222.111.222 - - [26/Mar/2008:11:13:02 -0700] "GET / HTTP/1.1" 200 15289 "http://www.google.pl/search?hl=pl%26q=magiczne.seoisem.pl+%26btnG=Szukaj%26lr=" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
Jest to zapis, który informuje że ktoś z komputera o przykładowym adresie IP 111.222.111.222 wysłał żądanie o stronę główną naszego bloga. Jedna linia w logu odpowiada zalogowaniu jednego żądania oraz towarzyszących mu informacji. Po przydługim wstępie dochodzimy więc do meritum dzisiejszego wpisu :). Przyjrzyjmy się co oznaczają poszczególne pola z tej pojedynczej linii. Dla lepszej orientacji, ten sam fragment podzielmy na części:
111.222.111.222
- -
[26/Mar/2008:11:13:02 -0700]
"GET / HTTP/1.1"
200
15289
"http://www.google.pl/search?hl=pl%26q=magiczne.seoisem.pl+%26btnG=Szukaj%26lr="
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
Adres IP:
111.222.111.222
Jest to adres IP komputera użytkownika, który nawiązał połączenie z naszą witryną. Czasem zamiast numeru IP można spotkać domenową nazwę danego komputera. Należy także pamiętać, że jeden numer IP może być przyporządkowany do więcej niż jednego użytkownika:
- W przypadku sieci osiedlowych lub biurowych jeden budynek, w którym znajduje się na przykład 30 komputerów. Każdy z użytkowników w Internecie może być widoczny z IP bramki, zapewniającą routing i połączenie z siecią zewnętrzną.
- W przypadku użytkowników z dynamicznym adresem IP (np Neostrada) – jeden adres „wędruje” pomiędzy osobami korzystającymi z usługi. Dziś mam go ja, jutro możesz mieć go Ty, po jutrze jeszcze ktoś inny.
Nazwa użytkownika:
- -
Te dwa minusy znikają w momencie, kiedy użytkownik ogląda na witrynie treści zabezpieczone hasłem. Nie chodzi tutaj o zwykłe logowanie się, na przykład do emaila, lecz o zabezpieczenie ustawiane w plikach .htaccess i .htpasswd (w jednym z naszych wcześniejszych wpisów o .htaccess zabezpieczanie folderu hasłem jest szerzej opisane).
Data i czas (tudzież timestamp):
[26/Mar/2008:11:13:02 -0700]
To pole zawiera datę i czas zakończenia realizacji danego żądania. Dodatkowo wskazywana jest jeszcze strefa czasowa serwera.
Żądany zasób:
"GET / HTTP/1.1"
W tym miejscu serwer HTTP zapisał jakiego zasobu zażądał użytkownik. Pojedynczy slash oznacza stronę główną, a zażądanie nastąpiło w protokole HTTP/1.1 Prośba o przykładowy wpis z naszego bloga wyglądałaby tak: "GET /2007/12/13/poskramiamy-htaccess-przekierowania-i-nie-tylko/ HTTP/1.1"
Kod odpowiedzi serwera HTTP:
200
Realizacja żądania zakończyła się sukcesem, dlatego serwer zanotował kod odpowiedzi równy 200 W przypadku, gdyby poproszono o nieistniejący plik, kodem odpowiedzi byłoby 404
W Wikipedii dostępna jest pełna lista kodów odpowiedzi serwera HTTP.
Przesłane dane (w bajtach):
15289
Zapis informuje o ilości danych, przesłanych w trakcie realizacji danego żądania. Wartość wyrażona jest w bajtach i odpowiada wielkości pobranego dokumentu.
Referer:
"http://www.google.pl/search?hl=pl%26q=magiczne.seoisem.pl+%26btnG=Szukaj%26lr="
Referer oznacza adres strony internetowej, która skierowała do nas danego użytkownika. Zazwyczaj za pomocą odnośnika :). W powyższym przykładzie hipotetycznego użytkownika skierowało do nas Google.
- Analizując referery z wyszukiwarek można dowiedzieć się jakie zapytania zostały wpisane przez odwiedzających nas użytkowników. Jest to naprawdę kopalnia wiedzy – zwłaszcza jeśli mamy uruchomioną kampanię reklamową na przykład w AdWords.
- Referery pomagają śledzić wartościowe linki przychodzące do naszej witryny. Wartościowe w sensie kierujące do nas użytkowników.
Pamiętaj także, że niektórzy użytkownicy chronią swoją prywatność poprzez blokowanie w swojej przeglądarce opcji wysyłania refererów. Wtedy w miejscu URLa pojawi się "-"
User Agent:
"Mozilla/5.0 (Macintosh; U; Intel Mac OS X; pl; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13"
User Agent to inaczej identyfikator aplikacji klienckiej, z której korzysta użytkownik. Tak tak, aplikacja kliencka to nic innego jak przeglądarka, przynajmniej w większości wypadków :). Z powyższego przykładu możemy wyczytać m.in., że użytkownik korzysta z komputera firmy Apple, opartego o procesor Intela, ma system operacyjny OS X, i używa Firefoksa w wersji 2.0.0.13. Całkiem sporo informacji. Na pewno spotkasz się także z user agentami opisującymi roboty wyszukiwarek, programy do mirrorowania witryn bądź menedżery pobierania plików.
Korzystając z User Agenta możesz prowadzić statystyki swoich użytkowników. Jeśli znacząca ilość używa mniej popularnej przeglądarki bądź systemu operacyjnego, upewnij się, że Twoja witryna dobrze się wyświetla w tamtym środowisku. Jeżeli Twoi goście używają starszych wersji przeglądarek uważaj z wprowadzaniem na witrynę gadżetowych wodotrysków, bo niekoniecznie mogą działać poprawnie. Pamiętaj, że Internet Explorer już dawno nie równa się Internet :).
Masz pytania? Napisz w komentarzach albo przez komunikator: bartek@jabber.org :).



Dzieki za tekst. Przydal mi sie w 1 celu:)
Analizując referery z wyszukiwarek można dowiedzieć się jakie zapytania zostały wpisane przez odwiedzających nas użytkowników.
A czy nie jest tak że przekierowania z Adwords są w jakiś sposób szyfrowane? Czy dobrze rozumiem w możliwe jest zidentyfikowanie jakia fraza przekierowuje usera który:
wpisał frazę do wyszukiwarce Google
klika w reklamę X
zostaje przekierowany na stronę docelową.