Megosztás a következőn keresztül:


W3C-naplózás

A W3C kiterjesztett naplózás a kiszolgálóoldali naplózás típusa, amely engedélyezhető a kiszolgáló munkamenetében vagy URL-csoportjában. Ha a W3C-naplózás engedélyezve van egy URL-csoportban, a naplózás csak az URL-csoporthoz irányított kéréseken történik. Minden W3C-naplózás engedélyezésére konfigurált URL-csoporthoz külön naplófájl jön létre.

Ha a W3C-naplózás engedélyezve van a kiszolgálói munkamenetben, központi naplózási formaként működik a kiszolgálói munkamenetben lévő összes URL-csoport esetében. A rendszer egyetlen naplófájlt tart fenn a kiszolgálói munkamenet összes URL-csoportjához.

Az alábbi táblázat a HTTP Server API által naplózható mezőket sorolja fel. A tábla a HTTP_LOG_FIELD állandók egy részét tartalmazza. Az alábbiakban felsorolt mezők némelyikét a HTTP Server API belsőleg automatikusan hozza létre, ezért nem tartalmazza a HTTP_LOG_FIELDS_DATA struktúrát. A "Megjelenés másként" oszlop a naplófájlban megjelenő szöveget tartalmazza. A tábla adatai a naplófájlrekordban való előfordulás sorrendjében halmazosak.

A "LÉTREHOZOTT HTTP Server API" jelöléssel nem rendelkező mezőket alkalmazásonként HTTP_LOG_FIELDS_DATA struktúrában kell átadni. Az alkalmazás létrehozhatja ezeket a mezőket a neki átadott HTTP_REQUEST struktúrából.

Mező Úgy jelenik meg, mint Leírás HTTP_LOG_FIELDS_DATA tag HTTP_LOG_FIELDS állandók
Dátum dátum A tevékenység bekövetkezésének dátuma. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_DATE
Idő Idő Az az idő, amely az egyezményes világidő (UTC) szerint történt, amikor a tevékenység végbelépett. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_TIME
Szolgáltatásnév és példányszám s-sitename Az ügyfélen futó internetes szolgáltatás neve és példányszáma. ServiceName HTTP_LOG_FIELD_SITE_NAME
Kiszolgáló neve s-computername Annak a kiszolgálónak a neve, amelyen a naplófájl-bejegyzés létrejött. Kiszolgálónév HTTP_LOG_FIELD_COMPUTER_NAME
Kiszolgáló IP-címe s-ip Annak a kiszolgálónak az IP-címe, amelyen a naplófájl-bejegyzés létrejött. ServerIp HTTP_LOG_FIELD_SERVER_IP
Módszer cs-metódus A kért igét, például a GET metódust. Módszer HTTP_LOG_FIELD_METHOD
URI-szár cs-uri-szár Az ige célja, például Default.htm. UriStem HTTP_LOG_FIELD_URI_STEM
URI-lekérdezés cs-uri-query A lekérdezés, ha van ilyen, amelyet az ügyfél próbált végrehajtani. Univerzális erőforrás-azonosító (URI) lekérdezésre csak dinamikus oldalak esetén van szükség. UriQuery HTTP_LOG_FIELD_URI_QUERY
Kiszolgálóport s-port A szolgáltatáshoz konfigurált kiszolgálóport száma. ServerPort HTTP_LOG_FIELD_SERVER_PORT
Felhasználónév cs-username A kiszolgálóhoz hozzáférő hitelesített felhasználó neve. A névtelen felhasználókat kötőjel jelzi. UserName HTTP_LOG_FIELD_USER_NAME
Ügyfél IP-címe c-ip A kérést küldő ügyfél IP-címe. ClientIp HTTP_LOG_FIELD_CLIENT_IP
Protokollverzió cs-version Az ügyfél által használt HTTP-protokoll verziója. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_VERSION
Felhasználói ügynök cs(User-Agent) Az ügyfél által használt böngészőtípus. UserAgent HTTP_LOG_FIELD_USER_AGENT
Süti cs(Cookie) Az elküldött vagy fogadott cookie tartalma, ha van ilyen. Süti HTTP_LOG_FIELD_COOKIE
Hivatkozói cs(Referrer) A webhely, amelyet a felhasználó legutóbb meglátogatott. Ez a webhely az aktuális webhelyre mutató hivatkozást adott meg. Hivatkozói HTTP_LOG_FIELD_REFERRER
Házigazda cs-host A gazdagép fejlécének neve, ha van ilyen. Házigazda HTTP_LOG_FIELD_HOST
HTTP-állapot sc-status A HTTP-állapotkód. ProtocolStatus HTTP_LOG_FIELD_STATUS
Protokoll-alállapotok sc-substatus Az alállapot hibakódja. Alállapotok HTTP_LOG_FIELD_SUB_STATUS
Win32 állapota sc-win32-status A Windows állapotkódja. Win32Status HTTP_LOG_FIELD_WIN32_STATUS
Elküldött bájtok sc-bytes A kiszolgáló által küldött bájtok száma. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_BYTES_SENT
Fogadott bájtok cs-bytes A kiszolgáló által fogadott és feldolgozott bájtok száma. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_BYTES_RECV
Eltelt idő időt vett igénybe A művelet időtartama ezredmásodpercben. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_TIME_TAKEN
Stream-azonosító streamid A stream azonosítója. LÉTREHOZOTT HTTP Server API. HTTP_LOG_FIELD_STREAM_ID

 

A naplófájl testre szabható ASCII szövegalapú formátum. A fájl mezőelőtagjai a következőképpen vannak definiálva:

Előképző Leírás
s Kiszolgálóműveletek.
c Ügyfélműveletek.
Sc Kiszolgáló–ügyfél műveletek.
Cs Ügyfél-kiszolgáló műveletek.

 

Az alkalmazás kijelölhet egy vagy több W3C kiterjesztett naplófájlmezőt, de nem minden mező tartalmaz információkat. A kijelölt, de információval nem rendelkező mezők esetében helyőrzőként egy kötőjel (-) jelenik meg. Ha egy mező nem nyomtatható karaktert tartalmaz, a HTTP Server API egy pluszjelre (+) cseréli a naplófájl formátumának megőrzése érdekében. Ez általában vírustámadások esetén fordul elő, amikor például egy rosszindulatú felhasználó kocsivisszaadásokat és vonalcsatornákat küld, amelyek, ha nem a pluszjelre (+) cserélik, megszakítják a naplófájl formátumát. A mezők szóközökkel vannak elválasztva.

Ha egy mezőt engedélyez az URL-csoport vagy a kiszolgáló munkamenete, de nincs kijelölve a kéréshez, akkor a naplófájlban egy kötőjel (-) jelenik meg helyőrzőként.

A naplófájlok akkor jönnek létre, amikor az első kérés megérkezik az URL-csoportra vagy a kiszolgáló munkamenetére, a naplózás konfigurálásakor nem jönnek létre. Az alábbi példa egy W3C-naplófájl első naplófájl-bejegyzését mutatja be, amelyen engedélyezve van az ügyfél IP-címe, felhasználóneve, kiszolgáló IP-címe, kiszolgálóportja, metódusa, URI-szára, URI-lekérdezése, állapota és felhasználói ügynök mezője:

#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)

Az időt vett mező inicializálódik, amikor a HTTP Server API megkapja az első bájtot, mielőtt a kérést elemezni kezdené. Az időtúllépési időbélyeg az utolsó küldés befejezésekor leáll. Az eltelt idő nem tükrözi a hálózaton belüli időt. A webhelyre irányuló első kérés valamivel hosszabb időt mutat, mint más hasonló kérések, mivel a HTTP Server API megnyitja a naplófájlt az első kéréssel.