Registro de W3C
El registro extendido de W3C es el tipo de registro del lado servidor que se puede habilitar en la sesión del servidor o en el grupo de direcciones URL. Cuando el registro de W3C está habilitado en un grupo de direcciones URL, el registro solo se realiza en las solicitudes que se enrutan al grupo de direcciones URL. Se crea un archivo de registro independiente para cada grupo de direcciones URL configurado para habilitar el registro W3C.
Cuando el registro de W3C está habilitado en la sesión del servidor, funciona como forma centralizada de registro para todos los grupos de direcciones URL de la sesión del servidor. Se mantiene un único archivo de registro para todos los grupos de direcciones URL de la sesión del servidor.
En la tabla siguiente se enumeran los campos que puede registrar la API de servidor HTTP. La tabla contiene un subconjunto de las constantes HTTP_LOG_FIELD . Algunos de los campos que se enumeran a continuación se generan automáticamente mediante la API de servidor HTTP internamente y, por lo tanto, no están incluidos en la estructura de HTTP_LOG_FIELDS_DATA . La columna "Aparece como" contiene el texto que aparece en el archivo de registro. Los datos de la tabla están en el orden de aparición en el registro del archivo de registro.
Los campos que no están marcados como "API de servidor HTTP generada" deben pasarse dentro de HTTP_LOG_FIELDS_DATA estructura por aplicación. La aplicación podría generar esos campos a partir de la estructura HTTP_REQUEST que se le pasó.
Campo | Aparece como | Descripción | miembro de HTTP_LOG_FIELDS_DATA | HTTP_LOG_FIELDS constantes |
---|---|---|---|---|
Fecha | fecha | Fecha en la que se produjo la actividad. | API de servidor HTTP generada. | HTTP_LOG_FIELD_DATE |
Time | time | Hora, en hora universal coordinada (UTC), a la que se produjo la actividad. | API de servidor HTTP generada. | HTTP_LOG_FIELD_TIME |
Nombre del servicio y número de instancia | s-sitename | El nombre del servicio de Internet y el número de instancia que se estaba ejecutando en el cliente. | ServiceName | HTTP_LOG_FIELD_SITE_NAME |
Nombre del servidor | s-computername | Nombre del servidor en el que se generó la entrada del archivo de registro. | nombreDeServidor | HTTP_LOG_FIELD_COMPUTER_NAME |
Dirección IP del servidor | s-ip | Dirección IP del servidor en el que se generó la entrada del archivo de registro. | ServerIp | HTTP_LOG_FIELD_SERVER_IP |
Método | cs-method | Verbo solicitado, por ejemplo, un método GET. | Método | HTTP_LOG_FIELD_METHOD |
Tallo de URI | cs-uri-stem | El destino del verbo, por ejemplo, Default.htm. | UriStem | HTTP_LOG_FIELD_URI_STEM |
Consulta de URI | cs-uri-query | Consulta, si existe, que el cliente estaba intentando realizar. Las consultas de Identificador de recursos universal (URI) solo son necesarias para las páginas dinámicas. | UriQuery | HTTP_LOG_FIELD_URI_QUERY |
Puerto del servidor | s-port | Número de puerto del servidor que está configurado para el servicio. | ServerPort | HTTP_LOG_FIELD_SERVER_PORT |
Nombre de usuario | cs-username | Nombre del usuario autenticado que obtuvo acceso al servidor. Los usuarios anónimos se indican con un guion. | UserName | HTTP_LOG_FIELD_USER_NAME |
Dirección IP de cliente | c-ip | Dirección IP del cliente que realizó la solicitud. | ClientIp | HTTP_LOG_FIELD_CLIENT_IP |
Versión del protocolo | cs-version | Versión del protocolo HTTP que usó el cliente. | API de servidor HTTP generada. | HTTP_LOG_FIELD_VERSION |
User Agent | cs(User-Agent) | Tipo de explorador utilizado por el cliente. | UserAgent | HTTP_LOG_FIELD_USER_AGENT |
Cookie | cs(Cookie) | El contenido de la cookie enviada o recibida, si existe. | Cookie | HTTP_LOG_FIELD_COOKIE |
Referrer | cs(Referer) | Sitio que el usuario visitó por última vez. Este sitio proporciona un vínculo al sitio actual. | Referrer | HTTP_LOG_FIELD_REFERRER |
Host | cs-host | Nombre del encabezado de host, si existe. | Host | HTTP_LOG_FIELD_HOST |
Estado HTTP | sc-status | El código de estado HTTP. | ProtocolStatus | HTTP_LOG_FIELD_STATUS |
Subestado de protocolo | sc-substatus | Código de error de subestado. | SubStatus | HTTP_LOG_FIELD_SUB_STATUS |
Estado de Win32 | sc-win32-status | Código de estado de Windows. | Win32Status | HTTP_LOG_FIELD_WIN32_STATUS |
Bytes enviados | sc-bytes | Número de bytes enviados por el servidor. | API de servidor HTTP generada. | HTTP_LOG_FIELD_BYTES_SENT |
Bytes recibidos | cs-bytes | Número de bytes recibidos y procesados por el servidor. | API de servidor HTTP generada. | HTTP_LOG_FIELD_BYTES_RECV |
Tiempo empleado | tiempo necesario | El período de tiempo que tardó la acción, en milisegundos. | API de servidor HTTP generada. | HTTP_LOG_FIELD_TIME_TAKEN |
Id. de secuencia | streamid | Identificador de secuencia. | API de servidor HTTP generada. | HTTP_LOG_FIELD_STREAM_ID |
El archivo de registro es un formato personalizado basado en texto ASCII. Los prefijos de campo del archivo se definen de la siguiente manera:
Prefijo | Descripción |
---|---|
s | Acciones del servidor. |
c | Acciones de cliente. |
Sc | Acciones de servidor a cliente. |
cs | Acciones de cliente a servidor. |
La aplicación puede seleccionar uno o varios de los campos de archivo de registro extendido de W3C; sin embargo, no todos los campos contendrán información. Para los campos seleccionados pero para los que no hay información, aparece un guión (-) como marcador de posición. Si un campo contiene un carácter no imprimible, la API del servidor HTTP la reemplaza por un signo más (+) para conservar el formato del archivo de registro. Esto suele producirse con ataques de virus, cuando, por ejemplo, un usuario malintencionado envía retornos de carro y fuentes de línea que, si no se reemplazan por el signo más (+), interrumpirían el formato del archivo de registro. Los campos están separados por espacios.
Si el grupo de direcciones URL o la sesión del servidor habilita un campo, pero no está seleccionado para la solicitud, aparece en el archivo de registro con un guión (-) como marcador de posición.
Los archivos de registro se crean cuando la primera solicitud llega a la sesión del grupo de direcciones URL o del servidor, no se crean cuando se configura el registro. En el ejemplo siguiente se muestra la primera entrada del archivo de registro de un archivo de registro W3C con los campos Ip del cliente, Nombre de usuario, IP del servidor, Puerto del servidor, Método, Stem de URI, Consulta de URI, Estado y Agente de usuario 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)
El campo de tiempo necesario se inicializa cuando la API del servidor HTTP recibe el primer byte, antes de analizar la solicitud. La marca de tiempo que se tarda se detiene cuando se produce la última finalización del envío. El tiempo necesario no refleja el tiempo a través de la red. La primera solicitud al sitio muestra un tiempo ligeramente más largo que otras solicitudes similares porque la API del servidor HTTP abre el archivo de registro con la primera solicitud.