Sdílet prostřednictvím


Protokolování W3C

Rozšířené protokolování W3C je typ protokolování na straně serveru, které lze povolit v relaci serveru nebo skupině adres URL. Pokud je ve skupině adres URL povolené protokolování W3C, protokolování se provádí pouze u požadavků směrovaných do skupiny adres URL. Pro každou skupinu adres URL nakonfigurovanou pro povolení protokolování W3C se vytvoří samostatný soubor protokolu.

Pokud je protokolování W3C povolené v relaci serveru, funguje jako centralizovaná forma protokolování pro všechny skupiny adres URL v rámci relace serveru. Jeden soubor protokolu se udržuje pro všechny skupiny adres URL v relaci serveru.

V následující tabulce jsou uvedena pole, která lze protokolovat pomocí rozhraní API serveru HTTP. Tabulka obsahuje podmnožinu konstant HTTP_LOG_FIELD. Některá z níže uvedených polí jsou automaticky generována rozhraním API HTTP Serveru interně, a proto nejsou obsažena ve struktuře HTTP_LOG_FIELDS_DATA. Sloupec "Vypadá jako" obsahuje text, který se zobrazí v souboru protokolu. Data v tabulce jsou v pořadí výskytu v záznamu souboru protokolu.

Pole, která nejsou označená jako "vygenerované rozhraní API serveru HTTP", musí být předána uvnitř struktury HTTP_LOG_FIELDS_DATA aplikací. Aplikace může tato pole vygenerovat ze struktury HTTP_REQUEST, která jí byla předána.

Pole Zobrazí se jako Popis HTTP_LOG_FIELDS_DATA člen konstanty HTTP_LOG_FIELDS
Rande rande Datum, kdy došlo k aktivitě. Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_DATE
Čas Čas Čas v koordinovaném univerzálním čase (UTC), kdy došlo k aktivitě. Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_TIME
Název služby a číslo instance s-sitename Název internetové služby a číslo instance spuštěné v klientovi. Název služby HTTP_LOG_FIELD_SITE_NAME
Název serveru s-computername Název serveru, na kterém byla vygenerována položka souboru protokolu. Název serveru HTTP_LOG_FIELD_COMPUTER_NAME
IP adresa serveru s-ip IP adresa serveru, na kterém byla vygenerována položka souboru protokolu. ServerIp HTTP_LOG_FIELD_SERVER_IP
Metoda cs-method Požadovaný příkaz, například metodu GET. Metoda HTTP_LOG_FIELD_METHOD
URI Stem cs-uri-stem Cíl příkazu, například Default.htm. UriStem HTTP_LOG_FIELD_URI_STEM
Dotaz URI cs-uri-query Dotaz, pokud existuje, že se klient pokusil provést. Dotaz identifikátoru URI (Universal Resource Identifier) je nezbytný pouze pro dynamické stránky. UriQuery HTTP_LOG_FIELD_URI_QUERY
Port serveru s-port Číslo portu serveru, které je nakonfigurované pro službu. ServerPort HTTP_LOG_FIELD_SERVER_PORT
Uživatelské jméno cs-username Jméno ověřeného uživatele, který k serveru přistupoval. Anonymní uživatelé jsou označeni pomlčkou. Uživatelské jméno HTTP_LOG_FIELD_USER_NAME
IP adresa klienta c-ip IP adresa klienta, který požadavek provedl. ClientIp HTTP_LOG_FIELD_CLIENT_IP
Verze protokolu cs-version Verze protokolu HTTP, kterou klient použil. Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_VERSION
Uživatelský agent cs(User-Agent) Typ prohlížeče, který klient použil. UserAgent HTTP_LOG_FIELD_USER_AGENT
Sušenka cs(Cookie) Obsah souboru cookie byl odeslán nebo přijat, pokud existuje. Sušenka HTTP_LOG_FIELD_COOKIE
Referrer cs(Referrer) Web, který uživatel naposledy navštívil. Tento web poskytl odkaz na aktuální web. Referrer HTTP_LOG_FIELD_REFERRER
Hostitel cs-host Název hlavičky hostitele, pokud existuje. Hostitel HTTP_LOG_FIELD_HOST
Stav HTTP Sc-status Stavový kód HTTP. ProtocolStatus HTTP_LOG_FIELD_STATUS
Podstatus protokolu Sc-substatus Kód chyby dílčího statistiky. Dílčí statistika HTTP_LOG_FIELD_SUB_STATUS
Stav Win32 sc-win32-status Stavový kód Windows. Win32Status HTTP_LOG_FIELD_WIN32_STATUS
Odeslané bajty Sc-bytes Počet bajtů odeslaných serverem Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_BYTES_SENT
Přijaté bajty cs-bytes Počet bajtů přijatých a zpracovaných serverem Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_BYTES_RECV
Čas potřebný k tomu doba trvání Doba trvání akce v milisekundách. Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_TIME_TAKEN
ID streamu streamid ID streamu. Vygenerovalo se rozhraní API serveru HTTP. HTTP_LOG_FIELD_STREAM_ID

 

Soubor protokolu je přizpůsobitelný textový formát ASCII. Předpony polí v souboru jsou definovány takto:

Předpona Popis
s Akce serveru.
c Akce klienta.
Sc Akce mezi servery
Cs Akce typu klient-server

 

Aplikace může vybrat jedno nebo více polí souboru protokolu W3C Extended, ale ne všechna pole budou obsahovat informace. U polí, která jsou vybraná, ale pro která nejsou žádné informace, se jako zástupný symbol zobrazí spojovník (-). Pokud pole obsahuje netisknutelný znak, rozhraní API serveru HTTP ho nahradí znaménkem plus (+), aby se zachoval formát souboru protokolu. K tomu obvykle dochází u virových útoků, když například škodlivý uživatel odesílá návraty na začátek řádku a řádkové kanály, které , pokud není nahrazeno znaménkem plus (+), by přerušilo formát souboru protokolu. Pole jsou oddělená mezerami.

Pokud je pole povolené skupinou adres URL nebo relací serveru, ale není vybráno pro požadavek, zobrazí se v souboru protokolu se spojovníkem (-) jako zástupný symbol.

Soubory protokolu se vytvoří při příchodu prvního požadavku do relace skupiny adres URL nebo serveru, které se při konfiguraci protokolování nevytvořily. Následující příklad ukazuje první položku souboru protokolu pro soubor protokolu W3C s povolenými poli Ip adresa klienta, uživatelské jméno, SERVER IP, port serveru, metoda, identifikátor URI, dotaz URI, stav a uživatelský agent:

#Software: Microsoft HTTP Server API 2.0  
#Version: 1.0   // the log file version as it's described by "https://www.w3.org/TR/WD-logfile".
#Date: 2002-05-02 17:42:15  // when the first log file entry was recorded, which is when the entire log file was created.
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem cs-uri-query sc-status cs(User-Agent)
2002-05-02 17:42:15 172.22.255.255 - 172.30.255.255 80 GET /images/picture.jpg - 200 Mozilla/4.0+(compatible;MSIE+5.5;+Windows+2000+Server)

Časové pole se inicializuje, když rozhraní API serveru HTTP obdrží první bajt před parsováním požadavku. Časové razítko se zastaví, když dojde k dokončení posledního odeslání. Doba potřebná pro celou síť neodráží čas. První požadavek na web ukazuje o něco delší dobu, než jsou jiné podobné požadavky, protože rozhraní API serveru HTTP otevře soubor protokolu s prvním požadavkem.