Registro em log do W3C

O registro em log estendido do W3C é o tipo de log do lado do servidor que pode ser habilitado na sessão do servidor ou no grupo de URLs. Quando o log do W3C está habilitado em um grupo de URLs, o registro em log é executado somente em solicitações roteadas para o Grupo de URLs. Um arquivo de log separado é criado para cada grupo de URL configurado para habilitar o registro em log do W3C.

Quando o log do W3C está habilitado na sessão do servidor, ele funciona como uma forma centralizada de registro em log para todos os grupos de URLs na sessão do servidor. Um único arquivo de log é mantido para todos os grupos de URLs na sessão do servidor.

A tabela a seguir lista os campos que podem ser registrados pela API do Servidor HTTP. A tabela contém um subconjunto das constantes HTTP_LOG_FIELD . Alguns dos campos listados abaixo são gerados automaticamente pela API do Servidor HTTP internamente e, portanto, não estão contidos na estrutura HTTP_LOG_FIELDS_DATA . A coluna "Aparece como" contém o texto que aparece no arquivo de log. Os dados na tabela estão na ordem de ocorrência no registro do arquivo de log.

Os campos que não estão marcados como "API de Servidor HTTP gerada" precisam ser passados para dentro HTTP_LOG_FIELDS_DATA estrutura por aplicativo. O aplicativo pode gerar esses campos da estrutura HTTP_REQUEST passada para ele.

Campo Aparece como Descrição Membro HTTP_LOG_FIELDS_DATA constantes HTTP_LOG_FIELDS
Data data A data em que a atividade ocorreu. API do servidor HTTP gerada. HTTP_LOG_FIELD_DATE
Hora time A hora, em UTC (tempo universal coordenado), em que a atividade ocorreu. API do servidor HTTP gerada. HTTP_LOG_FIELD_TIME
Nome do serviço e número da instância s-sitename O nome do serviço de Internet e o número da instância que estava em execução no cliente. ServiceName HTTP_LOG_FIELD_SITE_NAME
Nome do Servidor s-computername O nome do servidor no qual a entrada do arquivo de log foi gerada. ServerName HTTP_LOG_FIELD_COMPUTER_NAME
Endereço IP do servidor s-ip O endereço IP do servidor no qual a entrada do arquivo de log foi gerada. ServerIp HTTP_LOG_FIELD_SERVER_IP
Método método cs O verbo solicitado, por exemplo, um método GET. Método HTTP_LOG_FIELD_METHOD
Haste de URI cs-uri-stem O destino do verbo, por exemplo, Default.htm. UriStem HTTP_LOG_FIELD_URI_STEM
Consulta URI cs-uri-query A consulta, se houver, que o cliente estava tentando executar. Um URI (Resource Identifier Universal) consulta é necessário apenas para páginas dinâmico. UriQuery HTTP_LOG_FIELD_URI_QUERY
Porta do servidor s-port O número da porta do servidor configurado para o serviço. ServerPort HTTP_LOG_FIELD_SERVER_PORT
Nome do Usuário cs-username O nome do usuário autenticado que acessou o servidor. Os usuários anônimos são indicados por um hífen. UserName HTTP_LOG_FIELD_USER_NAME
Endereço IP do Cliente c-ip Endereço IP do cliente que fez a solicitação. ClientIp HTTP_LOG_FIELD_CLIENT_IP
Versão do protocolo cs-version A versão do protocolo HTTP usada pelo cliente. API do servidor HTTP gerada. HTTP_LOG_FIELD_VERSION
Agente do usuário cs(User-Agent) O tipo de navegador que o cliente usou. UserAgent HTTP_LOG_FIELD_USER_AGENT
Cookie cs(Cookie) O conteúdo do cookie enviado ou recebido, se houver. Cookie HTTP_LOG_FIELD_COOKIE
Referenciador cs(Referrer) O site que o usuário visitou pela última vez. Esse site fornece um link para o site atual. Referenciador HTTP_LOG_FIELD_REFERRER
Host cs-host O nome do cabeçalho do host, se houver. Host HTTP_LOG_FIELD_HOST
Status HTTP sc-status O código de status do HTTP. ProtocolStatus HTTP_LOG_FIELD_STATUS
Substatus de protocolo sc-substatus O código de erro substatus. SubStatus HTTP_LOG_FIELD_SUB_STATUS
Win32 Status sc-win32-status O código do Windows status. Win32Status HTTP_LOG_FIELD_WIN32_STATUS
Bytes Enviados sc-bytes O número de bytes enviados pelo servidor. API do servidor HTTP gerada. HTTP_LOG_FIELD_BYTES_SENT
Bytes Recebidos cs-bytes O número de bytes recebidos e processados pelo servidor. API do servidor HTTP gerada. HTTP_LOG_FIELD_BYTES_RECV
Tempo decorrido tempo gasto O período de tempo que a ação tomou em milissegundos. API do servidor HTTP gerada. HTTP_LOG_FIELD_TIME_TAKEN
ID do fluxo streamid A ID do Fluxo. API do servidor HTTP gerada. HTTP_LOG_FIELD_STREAM_ID

 

O arquivo de log é um formato baseado em texto ASCII personalizável. Os prefixos de campo no arquivo são definidos da seguinte maneira:

Prefixo Descrição
s Ações do servidor.
c Ações do cliente.
Sc Ações de servidor para cliente.
cs Ações de cliente para servidor.

 

O aplicativo pode selecionar um ou mais dos campos de arquivo de log estendido do W3C, no entanto, nem todos os campos conterão informações. Para campos selecionados, mas para os quais não há informações, um hífen (-) aparece como um espaço reservado. Se um campo contiver um caractere não imprimível, a API do servidor HTTP o substituirá por um sinal de adição (+) para preservar o formato do arquivo de log. Isso normalmente ocorre com ataques de vírus, quando, por exemplo, um usuário mal-intencionado envia retornos de carro e feeds de linha que, se não substituídos pelo sinal de adição (+), quebrariam o formato do arquivo de log. Os campos são separados por espaços.

Se um campo estiver habilitado pelo grupo de URL ou sessão do servidor, mas não estiver selecionado para a solicitação, ele aparecerá no arquivo de log com um hífen (-) como um espaço reservado.

Os arquivos de log são criados quando a primeira solicitação chega no Grupo de URLs ou na sessão do servidor, eles não são criados quando o registro em log é configurado. O exemplo a seguir mostra a primeira entrada de arquivo de log para um arquivo de log W3C com os campos IP do cliente, nome de usuário, IP do servidor, porta do servidor, método, haste de URI, consulta de URI, status e agente de usuário habilitados:

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

O campo demorado é inicializado quando a API do servidor HTTP recebe o primeiro byte, antes que a solicitação seja analisada. O carimbo de data/hora demorado é interrompido quando ocorre a última conclusão do envio. O tempo gasto não reflete o tempo em toda a rede. A primeira solicitação para o site mostra um tempo um pouco mais longo do que outras solicitações semelhantes porque a API do servidor HTTP abre o arquivo de log com a primeira solicitação.