Udostępnij przez


Format dzienników błędów interfejsu API serwera HTTP

Ogólnie rzecz biorąc, pliki dziennika błędów interfejsu API serwera HTTP mają ten sam format co dzienniki błędów W3C, z wyjątkiem tego, że pliki dziennika błędów interfejsu API serwera HTTP nie zawierają nagłówków kolumn. Każdy wiersz dziennika błędów interfejsu API serwera HTTP rejestruje jeden błąd z polami w określonej kolejności. Każde pole jest oddzielone od poprzedniego pola pojedynczym znakiem spacji (0x0020). W każdym polu znaki spacji, kart i niedrukowalne znaki sterujące są zastępowane znakami plus (0x002B).

W poniższej tabeli przedstawiono pola i kolejność pól w rekordzie dziennika błędów.

Pole Opis
data
Pole Data jest zgodne z formatem W3C i jest oparte na uniwersalnym czasie koordynowanym (UTC). Pole Data ma zawsze 10 znaków w postaci "RRRR-MM-DD". Na przykład 1 maja 2003 r. jest wyrażona jako "2003-05-01".
czas
Pole Czas jest zgodne z formatem W3C i jest oparte na formacie UTC. Pole czasu ma zawsze 8 znaków w postaci "MM:HH:SS". Na przykład 17:30 (UTC) jest wyrażona jako "17:30:00".
adres IP klienta
Adres IP klienta, którego dotyczy problem, może być adresem IPv4 lub adresem IPv6. Jeśli adres IP klienta jest adresem IPv6, pole ScopeId jest również uwzględnione w adresie.
port klienta
Numer portu klienta, którego dotyczy problem.
adres IP serwera
Adres IP serwera, którego dotyczy problem, może być adresem IPv4 lub adresem IPv6. Jeśli adres IP serwera jest adresem IPv6, pole ScopeId jest również uwzględnione w adresie.
port serwera
Numer portu serwera, którego dotyczy problem.
wersja protokołu
Wersja używanego protokołu.
  • Jeśli połączenie nie zostało przeanalizowane wystarczająco, aby określić wersję protokołu, łącznik (0x002D) jest używany jako symbol zastępczy pustego pola.
  • Jeśli przeanalizowany numer wersji głównej lub pomocniczej jest większy lub równy 10, wersja jest rejestrowana jako "HTTP/?.?".
czasownik
Stan zlecenia przekazany przez ostatnie przeanalizowane żądanie. Uwzględniane są nieznane czasowniki, ale wszystkie czasowniki o długości przekraczającej 255 bajtów są obcinane do tej długości. Jeśli czasownik jest niedostępny, łącznik (0x002D) jest używany jako symbol zastępczy pustego pola.
CookedURL + Query
Adres URL i wszystkie skojarzone z nim zapytania są rejestrowane jako jedno pole oddzielone znakiem zapytania (0x3F). To pole jest obcinane z limitem długości 4096 bajtów.
  • Jeśli ten adres URL został przeanalizowany ("gotowany"), jest rejestrowany przy użyciu lokalnej konwersji strony kodu i jest traktowany jako pole Unicode.
  • Jeśli ten adres URL nie został przeanalizowany ("gotowane") w momencie rejestrowania, zostanie on skopiowany dokładnie bez żadnej konwersji Unicode.
  • Jeśli interfejs API serwera HTTP nie może przeanalizować tego adresu URL, łącznik (0x002D) jest używany jako symbol zastępczy pustego pola.

stan protokołu
Stan protokołu nie może przekraczać 999.
  • Jeśli jest dostępny stan protokołu odpowiedzi na żądanie, jest on rejestrowany w tym polu.
  • Jeśli stan protokołu jest niedostępny, łącznik (0x002D) jest używany jako symbol zastępczy pustego pola.
identyfikator witryny
Nie jest używany w tej wersji interfejsu API serwera HTTP. Łącznik zastępczy (0x002D) zawsze pojawia się w tym polu.
fraza przyczyny
To pole zawiera ciąg identyfikujący rodzaj rejestrowanego błędu. Nigdy nie jest pozostawiona pusta.

Następujące przykładowe wiersze pochodzą z dziennika błędów interfejsu API serwera HTTP:

2002-07-05 18:45:09 172.31.77.6 2094 172.31.77.6 80 
                    HTTP/1.1 GET /qos/1kbfile.txt 503 - ConnLimit
2002-07-05 19:51:59 127.0.0.1 2780 127.0.0.1 80 
                    HTTP/1.1 GET /ThisIsMyUrl.htm 400 - Hostname
2002-07-05 19:53:00 127.0.0.1 2894 127.0.0.1 80 
                    HTTP/2.0 GET / 505 - Version_N/S
2002-07-05 20:06:01 172.31.77.6 64388 127.0.0.1 80 
                    - - - - - Timer_MinBytesPerSecond