Aracılığıyla paylaş


W3C Günlüğü

W3C genişletilmiş günlüğü, sunucu oturumunda veya URL grubunda etkinleştirilebilen sunucu tarafı günlüğü türüdür. W3C günlüğü bir URL grubunda etkinleştirildiğinde, günlük yalnızca URL Grubuna yönlendirilen isteklerde gerçekleştirilir. W3C günlüğünü etkinleştirmek üzere yapılandırılmış her URL grubu için ayrı bir günlük dosyası oluşturulur.

Sunucu oturumunda W3C günlüğü etkinleştirildiğinde, sunucu oturumu altındaki tüm URL grupları için merkezi bir günlük kaydı biçimi olarak çalışır. Sunucu oturumundaki tüm URL grupları için tek bir günlük dosyası tutulur.

Aşağıdaki tabloda, HTTP Server API'sinin günlüğe kaydedebileceği alanlar listelenmiştir. Tablo, HTTP_LOG_FIELD sabitlerinin bir alt kümesini içerir. Aşağıda listelenen alanlardan bazıları HTTP Server API'sinde dahili olarak otomatik olarak oluşturulur ve bu nedenle HTTP_LOG_FIELDS_DATA yapısında yer almaz. "Farklı Görünür" sütunu, günlük dosyasında görünen metni içerir. Tablodaki veriler günlük dosyası kaydındaki oluşum sırasına göredir.

"HTTP Sunucu API'si oluşturuldu" olarak işaretlenmemiş alanların uygulamaya göre HTTP_LOG_FIELDS_DATA yapıya geçirilmesi gerekir. Uygulama, geçirilen HTTP_REQUEST yapısından bu alanları oluşturabilir.

Alan Farklı Görünür Açıklama HTTP_LOG_FIELDS_DATA Üyesi sabitleri HTTP_LOG_FIELDS
Tarih tarih Etkinliğin gerçekleştiği tarih. HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_DATE
Saat Saat Etkinliğin gerçekleştiği eşgüdümlü evrensel saat (UTC) saati. HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_TIME
Hizmet Adı ve Örnek Numarası s-sitename İstemcide çalışan İnternet hizmeti adı ve örnek numarası. ServiceName HTTP_LOG_FIELD_SITE_NAME
Sunucu Adı s-computername Günlük dosyası girişinin oluşturulduğu sunucunun adı. SunucuAdı HTTP_LOG_FIELD_COMPUTER_NAME
Sunucu IP Adresi s-ip Günlük dosyası girişinin oluşturulduğu sunucunun IP adresi. ServerIp HTTP_LOG_FIELD_SERVER_IP
Yöntem cs-metodu İstenen fiil, örneğin bir GET yöntemi. Yöntem HTTP_LOG_FIELD_METHOD
URI Kökü cs-uri-stem Fiilin hedefi, örneğin, Default.htm. Uristem HTTP_LOG_FIELD_URI_STEM
URI Sorgusu cs-uri-query Varsa, istemcinin gerçekleştirmeye çalıştığı sorgu. Evrensel Kaynak Tanımlayıcısı (URI) sorgusu yalnızca dinamik sayfalar için gereklidir. UriQuery HTTP_LOG_FIELD_URI_QUERY
Sunucu Bağlantı Noktası s-port Hizmet için yapılandırılan sunucu bağlantı noktası numarası. ServerPort HTTP_LOG_FIELD_SERVER_PORT
Kullanıcı Adı cs-username Sunucuya erişen kimliği doğrulanmış kullanıcının adı. Anonim kullanıcılar kısa çizgiyle gösterilir. Kullanıcı adı HTTP_LOG_FIELD_USER_NAME
İstemci IP Adresi c-ip İsteği yapan istemcinin IP adresi. ClientIp HTTP_LOG_FIELD_CLIENT_IP
Protokol Sürümü cs-version İstemcinin kullandığı HTTP protokolü sürümü. HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_VERSION
Kullanıcı Aracısı cs(User-Agent) İstemcinin kullandığı tarayıcı türü. UserAgent HTTP_LOG_FIELD_USER_AGENT
Çerez cs(Tanımlama Bilgisi) Varsa gönderilen veya alınan tanımlama bilgisinin içeriği. Çerez HTTP_LOG_FIELD_COOKIE
Referrer cs(Başvuran) Kullanıcının son ziyaret yaptığı site. Bu site geçerli siteye bir bağlantı sağladı. Referrer HTTP_LOG_FIELD_REFERRER
Ev sahibi cs-host Varsa, ana bilgisayar üst bilgi adı. Ev sahibi HTTP_LOG_FIELD_HOST
HTTP Durumu sc-status HTTP durum kodu. ProtocolStatus HTTP_LOG_FIELD_STATUS
Protokol Alt Durumu sc-substatus Alt durum hata kodu. SubStatus HTTP_LOG_FIELD_SUB_STATUS
Win32 Durumu sc-win32-status Windows durum kodu. Win32Status HTTP_LOG_FIELD_WIN32_STATUS
Gönderilen Bayt Sayısı sc-bytes Sunucu tarafından gönderilen bayt sayısı. HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_BYTES_SENT
Alınan Bayt Sayısı cs-bytes Sunucu tarafından alınan ve işlenen bayt sayısı. HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_BYTES_RECV
Geçen Süre zaman aldı Eylemin gerçekleştirilen süre (milisaniye cinsinden). HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_TIME_TAKEN
Akış Kimliği streamid Akış Kimliği. HTTP Sunucusu API'si oluşturuldu. HTTP_LOG_FIELD_STREAM_ID

 

Günlük dosyası, özelleştirilebilir bir ASCII metin tabanlı biçimdir. Dosyadaki alan ön ekleri aşağıdaki gibi tanımlanır:

Önek Açıklama
s Sunucu eylemleri.
c İstemci eylemleri.
Sc Sunucudan İstemciye eylemler.
bilgisayar bilimi İstemciden Sunucuya eylemler.

 

Uygulama, W3C Genişletilmiş günlük dosyası alanlarından birini veya daha fazlasını seçebilir, ancak tüm alanlar bilgi içermez. Seçili olan ancak bilgi bulunmayan alanlar için yer tutucu olarak kısa çizgi (-) görüntülenir. Bir alan yazdırılamayan bir karakter içeriyorsa, HTTP Sunucusu API'si günlük dosyası biçimini korumak için alanı artı işareti (+) ile değiştirir. Bu durum genellikle virüs saldırılarıyla oluşur. Örneğin, kötü niyetli bir kullanıcı satır başı gönderdiğinde ve satır beslemelerinde artı işareti (+) ile değiştirilmezse günlük dosyası biçimini bozar. Alanlar boşluklarla ayrılır.

Bir alan URL grubu veya sunucu oturumu tarafından etkinleştirildiyse ancak istek için seçili değilse, günlük dosyasında yer tutucu olarak kısa çizgi (-) ile görüntülenir.

Günlük dosyaları, ilk istek URL Grubu veya sunucu oturumuna ulaştığında oluşturulur, günlük yapılandırıldığında oluşturulmaz. Aşağıdaki örnekte İstemci IP'si, Kullanıcı Adı, Sunucu IP'si, Sunucu Bağlantı Noktası, Yöntem, URI Kökü, URI Sorgusu, Durum ve Kullanıcı Aracısı alanlarının etkin olduğu bir W3C günlük dosyası için ilk günlük dosyası girişi gösterilmektedir:

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

İstek ayrıştırmadan önce HTTP Sunucusu API'sinin ilk baytını alması halinde zaman alan alan başlatılır. Zaman alan zaman damgası, son gönderme tamamlanma işlemi gerçekleştiğinde durdurulur. Geçen süre, ağ genelindeki zamanı yansıtmaz. HTTP Server API'sinin ilk istekle birlikte günlük dosyasını açması nedeniyle siteye yapılan ilk istek diğer benzer isteklerden biraz daha uzun bir süre gösterir.