Udostępnij za pośrednictwem


Rejestrowanie W3C

Rozszerzone rejestrowanie W3C to typ rejestrowania po stronie serwera, które można włączyć w sesji serwera lub grupie adresów URL. Po włączeniu rejestrowania W3C w grupie adresów URL rejestrowanie jest wykonywane tylko na żądaniach kierowanych do grupy adresów URL. Dla każdej grupy adresów URL skonfigurowanych do włączania rejestrowania W3C jest tworzony oddzielny plik dziennika.

Gdy rejestrowanie W3C jest włączone na sesji serwera, działa jako scentralizowana forma rejestrowania dla wszystkich grup adresów URL w ramach sesji serwera. Jeden plik dziennika jest utrzymywany dla wszystkich grup adresów URL w sesji serwera.

W poniższej tabeli wymieniono pola, które mogą być rejestrowane przez interfejs API serwera HTTP. Tabela zawiera podzbiór stałych HTTP_LOG_FIELD. Niektóre pola wymienione poniżej są generowane automatycznie przez interfejs API serwera HTTP wewnętrznie i dlatego nie znajdują się w strukturze HTTP_LOG_FIELDS_DATA. Kolumna "Pojawia się jako" zawiera tekst wyświetlany w pliku dziennika. Dane w tabeli są w kolejności wystąpienia w rekordzie pliku dziennika.

Pola, które nie są oznaczone jako "Wygenerowany interfejs API serwera HTTP", muszą być przekazywane wewnątrz struktury HTTP_LOG_FIELDS_DATA przez aplikację. Aplikacja może wygenerować te pola na podstawie przekazanej struktury HTTP_REQUEST.

Pole Pojawia się jako Opis członek HTTP_LOG_FIELDS_DATA HTTP_LOG_FIELDS stałe
Data data Data wystąpienia działania. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_DATE
Godzina Godzina Czas, w uniwersalnym czasie koordynowanym (UTC), o którym wystąpiło działanie. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_TIME
Nazwa usługi i numer wystąpienia s-sitename Nazwa usługi internetowej i numer wystąpienia, który był uruchomiony na kliencie. ServiceName HTTP_LOG_FIELD_SITE_NAME
Nazwa serwera s-computername Nazwa serwera, na którym został wygenerowany wpis pliku dziennika. Nazwa serwera HTTP_LOG_FIELD_COMPUTER_NAME
Adres IP serwera s-ip Adres IP serwera, na którym został wygenerowany wpis pliku dziennika. ServerIp HTTP_LOG_FIELD_SERVER_IP
Metoda cs-method Żądane zlecenie, na przykład metoda GET. Metoda HTTP_LOG_FIELD_METHOD
URI Stem cs-uri-stem Element docelowy czasownika, na przykład, Default.htm. UriStem HTTP_LOG_FIELD_URI_STEM
Kwerenda identyfikatora URI cs-uri-query Zapytanie, jeśli istnieje, że klient próbował wykonać. Zapytanie uniwersalnego identyfikatora zasobów (URI) jest niezbędne tylko dla stron dynamicznych. UriQuery HTTP_LOG_FIELD_URI_QUERY
Port serwera s-port Numer portu serwera skonfigurowany dla usługi. ServerPort HTTP_LOG_FIELD_SERVER_PORT
Nazwa użytkownika cs-username Nazwa uwierzytelnionego użytkownika, który uzyskiwał dostęp do serwera. Użytkownicy anonimowi są wskazywani przez łącznik. Nazwa użytkownika HTTP_LOG_FIELD_USER_NAME
Adres IP klienta c-ip Adres IP klienta, który złożył żądanie. ClientIp HTTP_LOG_FIELD_CLIENT_IP
Wersja protokołu cs-version Wersja protokołu HTTP używana przez klienta. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_VERSION
Agent użytkownika cs(User-Agent) Typ przeglądarki używany przez klienta. UserAgent HTTP_LOG_FIELD_USER_AGENT
Ciasteczko cs(Cookie) Zawartość pliku cookie wysłanego lub odebranego, jeśli istnieje. Ciasteczko HTTP_LOG_FIELD_COOKIE
Referrer cs(Referer) Witryna ostatnio odwiedzana przez użytkownika. Ta witryna udostępniła link do bieżącej witryny. Referrer HTTP_LOG_FIELD_REFERRER
Gospodarz cs-host Nazwa nagłówka hosta, jeśli istnieje. Gospodarz HTTP_LOG_FIELD_HOST
Stan HTTP stan sc Kod stanu HTTP. ProtocolStatus HTTP_LOG_FIELD_STATUS
Stan podrzędny protokołu sc-substatus Kod błędu podstatu. Stan podrzędny HTTP_LOG_FIELD_SUB_STATUS
Stan win32 sc-win32-status Kod stanu systemu Windows. Win32Status HTTP_LOG_FIELD_WIN32_STATUS
Wysłane bajty bajty sc-by Liczba bajtów wysłanych przez serwer. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_BYTES_SENT
Odebrane bajty cs-bytes Liczba bajtów odebranych i przetworzonych przez serwer. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_BYTES_RECV
Czas potrzebny czas potrzebny Czas trwania akcji w milisekundach. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_TIME_TAKEN
Identyfikator strumienia streamid Identyfikator strumienia. Wygenerowany interfejs API serwera HTTP. HTTP_LOG_FIELD_STREAM_ID

 

Plik dziennika jest dostosowywalnym formatem tekstowym ASCII. Prefiksy pól w pliku są definiowane w następujący sposób:

Przedrostek Opis
s Akcje serwera.
c Akcje klienta.
Sc Akcje serwer-klient.
Cs Akcje klient-serwer.

 

Aplikacja może wybrać jedno lub więcej pól pliku dziennika rozszerzonego W3C, jednak nie wszystkie pola będą zawierać informacje. W przypadku pól, które są zaznaczone, ale dla których nie ma żadnych informacji, łącznik (-) jest wyświetlany jako symbol zastępczy. Jeśli pole zawiera znak niedrukowalny, interfejs API serwera HTTP zastępuje go znakiem plus (+), aby zachować format pliku dziennika. Zwykle występuje to w przypadku ataków wirusowych, gdy na przykład złośliwy użytkownik wysyła zwroty karetki i kanały informacyjne, które, jeśli nie zostaną zastąpione znakiem plus (+), spowoduje przerwanie formatu pliku dziennika. Pola są oddzielone spacjami.

Jeśli pole jest włączone przez grupę adresów URL lub sesję serwera, ale nie zostało wybrane dla żądania, zostanie ono wyświetlone w pliku dziennika z łącznikiem (-) jako symbol zastępczy.

Pliki dziennika są tworzone po nadejściu pierwszego żądania do grupy adresów URL lub sesji serwera, nie są tworzone podczas konfigurowania rejestrowania. Poniższy przykład przedstawia pierwszy wpis pliku dziennika dla pliku dziennika W3C z włączonymi polami Client IP, Username, Server IP, Server Port, Method, URI Stem, URI Query, Status i User 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)

Pole czasowe jest inicjowane, gdy interfejs API serwera HTTP odbiera pierwszy bajt, zanim żądanie zostanie przeanalizowane. Znacznik czasu potrzebny na czas zostanie zatrzymany po zakończeniu ostatniego wysłania. Czas potrzebny nie odzwierciedla czasu w całej sieci. Pierwsze żądanie do lokacji pokazuje nieco dłuższy czas niż inne podobne żądania, ponieważ interfejs API serwera HTTP otwiera plik dziennika z pierwszym żądaniem.