Espacio
Contenidos Índice Capítulo anterior Capítulo siguiente

CAPÍTULO 8

Publicación de información y de aplicaciones


Internet Information Server puede publicar tanto información como aplicaciones. Esto quiere decir que su sitio Web puede contener desde páginas estáticas de información hasta aplicaciones interactivas. También puede buscar y extraer información de bases de datos e insertar información en las mismas.

En este capítulo se explica cómo:


Arriba Preparación de información para su publicación

La mayoría de las páginas Web tienen el formato HTML. Los archivos HTML son sencillos archivos de texto ASCII con códigos que indican formatos y vínculos de hipertexto. Las especificaciones de HTML están cambiando constantemente. Probablemente debe revisar las especificaciones de HTML (disponibles en Internet) para diseñar sus páginas HTML.

Diseño de archivos HTML

Para crear y modificar sus archivos HTML puede usar cualquier editor de textos, como el Bloc de notas o Write, pero normalmente encontrará que un editor HTML, como Microsoft® FrontPage™ o Internet Assistant para Microsoft® Word, es más fácil de usar.

Para crear archivos HTML, que pueden incluir vínculos con otros archivos del sistema, use un editor HTML o cualquier otro sistema. Si desea incluir imágenes o sonidos, también necesitará el software apropiado para crear y modificar dichos archivos.

Publicación de archivos con formato HTML y otros formatos

Los archivos pueden contener imágenes y sonidos. Puede crear incluso vínculos con archivos de Microsoft® Office o con casi cualquier otro formato de archivo. Los usuarios remotos tiene que disponer de la aplicación visora apropiada para poder ver los archivos que no sean HTML. Por ejemplo, si sabe que todos los usuarios remotos disponen de Microsoft Word, puede incluir vínculos con archivos .doc de Microsoft Word. El usuario puede hacer clic en el vínculo y en el equipo del usuario aparecerá el documento de Word.

Una vez que haya creado la información en formato HTML o en otros formatos, puede copiarla al directorio predeterminado InetPub\Wwwroot, o bien puede cambiar el directorio particular predeterminado por el directorio que contenga su información.

Configuración de tipo MIME

Si su sitio Web incluye archivos que están en varios formatos, su equipo debe tener una asociación de Extensión de correo Internet multipropósito (MIME) por cada tipo de archivo. Si en el servidor no hay una asociación MIME para un determinado tipo de archivo, los exploradores no podrán recuperar el archivo. Examine el Registro de configuraciones de Windows NT para ver las asociaciones MIME predeterminadas.

Para configurar asociaciones MIME adicionales, inicie el Editor del Registro (Regedt32.exe) y abra

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\InetInfo\Parameters\MimeMap

Agregue el valor REG_SZ de la asociación MIME necesaria en su equipo con la siguiente sintaxis:

<tipo MIME>,<extensión de archivo>,<parámetro no usado>,<tipo gopher>

Por ejemplo:

text/html,htm,/unused,1
image/jpeg,jpeg,/unused,5

La cadena asociada con el valor (es decir, el contenido del valor) debe estar en blanco. La entrada predeterminada con la extensión de archivo asterisco (*) es el tipo MIME predeterminado que se usa cuando no existe ninguna asociación MIME. Por ejemplo, para administrar una petición del archivo Current.vgr cuando la extensión .vgr no se ha asociado a un tipo MIME, el equipo usará el tipo MIME especificado para la extensión *, que es el tipo usado para datos binarios. Normalmente, esto hace que los exploradores guarden el archivo en el disco.

Inclusión de otros archivos con la instrucción Include

Puede agregar información repetitiva a un archivo HTML justo antes de enviarlo al usuario. Esta característica es interesante cuando se incluye el mismo texto en todas las páginas HTML, como la información de derechos de autor o un vínculo con la página principal.

El formato de la instrucción Include es la siguiente:

<!--#include file="valor"-->

El valor tiene que contener una ruta relativa o la ruta completa, desde el directorio particular del servicio WWW.

Por ejemplo, para incluir un vínculo con la página principal en todos los documentos HTML:

Observe que todas las rutas son relativas al directorio particular de WWW y que pueden incluir directorios virtuales.


Arriba Publicación de aplicaciones dinámicas

Una de las características más atractivas de Microsoft Internet Information Server es la posibilidad de desarrollar aplicaciones o archivos de comandos que los usuarios remotos inician haciendo clic en vínculos HTML o completando y enviando un formulario HTML. Usando lenguajes de programación como C o Perl, puede crear aplicaciones o archivos de comandos que se comuniquen con el usuario mediante páginas dinámicas HTML.

Creación de aplicaciones o archivos de comandos

Las aplicaciones o los archivos de comandos interactivos se pueden escribir en casi cualquier lenguaje de programación de 32 bits, como C o Perl, o como archivos de proceso por lotes de Windows NT (que tienen la extensión .bat o .cmd). Al escribir las aplicaciones o los archivos de comandos puede usar una de las dos interfaces compatibles, la Interfaz de programación de aplicaciones de Microsoft Internet Server (ISAPI) o la Interfaz de puerto de enlace o gateway común (CGI). La documentación sobre ISAPI está disponible en Microsoft mediante la suscripción a Microsoft Developer Network (MSDN). En este capítulo se ofrece una introducción a CGI; la documentación sobre CGI está disponible en Internet. Los archivos de proceso por lotes pueden contener cualquier comando válido en el símbolo del sistema.

Las aplicaciones que usan ISAPI se compilan como bibliotecas de vínculos dinámicos (DLL) que el servicio WWW carga al iniciarse. Como los programas residen en memoria, los programas ISAPI son considerablemente más rápidos que las aplicaciones escritas con la especificación CGI.

Perl ISAPI disponible para cargar

Hip, Inc., el distribuidor independiente de software que desarrolla Perl para plataformas Win32, ha desarrollado una versión de Perl que se ejecuta como una aplicación ISAPI. Esto significa que los archivos de comandos de servidor de Perl pueden ejecutarse mucho más deprisa que antes al sacar el máximo partido del modelo de proceso interno de ISAPI. Actualmente, se puede cargar una versión no compatible de ISAPI Perl en http://www.perl.hip.com/. En este sitio WWW también encontrará más información al respecto. Para plantear sus dudas o enviar sus comentarios, utilice el alias de correo electrónico perlis@mail.hip.com, sobre todo si ya dispone de archivos de comandos de Perl.

API de Internet Server

ISAPI para Windows NT se puede utilizar para escribir aplicaciones que los usuarios de Web pueden activar completando un formulario HTML o haciendo clic en un vínculo de una página HTML de su sitio Web. La aplicación remota puede aceptar información introducida por el usuario y tratarla de cualquier modo que se pueda programar, y después devolver los resultados en una página HTML o enviar la información a una base de datos.

ISAPI se puede usar para crear aplicaciones que se ejecuten como DLL en su servidor Web. Si ha utilizado archivos de comandos CGI anteriormente, encontrará que las aplicaciones ISAPI tienen un mejor rendimiento porque se cargan en memoria durante la ejecución del servidor. Requieren menos tiempo de espera porque cada petición no inicia un proceso distinto.

[08_I260B  3223 bytes ]

Otra característica de ISAPI permite el preprocesamiento de peticiones y el postprocesamiento de respuestas, permitiendo la administración de peticiones y respuestas con el Protocolo de transferencia de hipertexto (HTTP) que sean específicas del sistema. Puede usar filtros ISAPI en aplicaciones como autentificaciones personalizadas, accesos o registros.

[08_I260C  3082 bytes ]

Pueden crear sistemas muy complejos usando filtros y aplicaciones ISAPI. También puede combinar extensiones ISAPI con el Conector de bases de datos de Internet para crear sitios altamente interactivos.

[08_I260D  3829 bytes ]

Para obtener información completa acerca de la programación con ISAPI, consulte Microsoft Win32 BackOffice Software Development Kit (SDK), disponible en MSDN. Para obtener más información acerca de cómo obtener el SDK de ISAPI, consulte el capítulo introductorio de esta guía, “Antes de empezar”.

Interfaz de puerta de enlace o gateway común

Interfaz de puerta de enlace o gateway común (CGI) es un conjunto de especificaciones para transferir información entre el explorador de un cliente Web, un servidor Web y una aplicación CGI. El explorador de un cliente Web puede iniciar una aplicación CGI completando un formulario HTML o haciendo clic en un vínculo de una página HTML del servidor Web. Como ocurre con ISAPI, la aplicación CGI puede aceptar información escrita por el usuario y tratarla de cualquier modo que se pueda programar, y después devolver los resultados en una página HTML o enviar la información a una base de datos. Como las aplicaciones CGI sencillas a menudo están escritas con lenguajes de archivos de comandos como Perl, a las aplicaciones CGI también se les conoce como “archivos de comandos”.

Microsoft Internet Information Server puede usar la mayoría de las aplicaciones de 32 bits que se ejecuten en Windows NT y cumplan las especificaciones CGI.

La siguiente ilustración muestra cómo intercambian información un explorador, un servidor y una aplicación CGI utilizando CGI. El resto de esta sección trata sobre este proceso que consta de cinco partes.

[08_I260E  3365 bytes ]

El cliente envía una petición

El explorador de un cliente puede realizar una petición CGI a un servidor mediante uno de estos dos métodos:

GET

POST


El cliente inicia un proceso CGI haciendo clic en cualquiera de los elementos siguientes de una página HTML:

El servidor recibe la petición

La dirección URL que el explorador del cliente envía al servidor contiene el nombre del archivo de comandos CGI o la aplicación que va a ejecutarse. El servidor compara la extensión del archivo con la clave de registro ScriptMapping del servidor para decidir qué ejecutable debe iniciar. El servidor tiene entradas ScriptMap para archivos .cmd y .bat, que inician Cmd.exe; y para archivos .idc, que inician el Conector de bases de datos de Internet. Para permitir que el servidor inicie un tipo de aplicación CGI sin asignación de extensión, agregue una entrada para dicho tipo de aplicación a la clave del registro. Por ejemplo, para permitir la ejecución de los archivos de comandos de Perl, agregue una entrada similar a la siguiente:

.pl: REG_SZ: C:\RESKIT\PERL\BIN\PERL.EXE %s %s

Donde

El servidor pasa la petición a la aplicación

El servidor pasa la información a la aplicación CGI utilizando variables de entorno y, a continuación, inicia la aplicación. Algunas de estas variables están relacionadas con el servidor pero la mayoría vienen del explorador del cliente y tienen relación con el explorador del cliente o con la petición que se está enviando. Para obtener una lista parcial de las variables de entorno, consulte la tabla de variables incluida al final de este capítulo.

La aplicación CGI devuelve los datos al servidor

La aplicación realiza su procesamiento. Si son adecuados, la aplicación escribe los datos en un formato que el cliente pueda recibir en el flujo de salida estándar (STDOUT). La aplicación debe seguir un formato específico a la hora de devolver los datos:

El servidor devuelve los datos al cliente

El servidor toma los datos que recibe de STDOUT y agrega encabezados HTTP estándar y, a continuación, devuelve el mensaje HTTP al cliente.

Para obtener más información acerca de CGI, consulte las especificaciones de CGI en http://hoohoo.ncsa.uiuc.edu/cgi/.

CGI e Internet Information Server

El servicio WWW es compatible con la especificación CGI (Interfaz de puerta de enlace o gateway común) estándar. No obstante, debe ser consciente de lo siguiente, exclusivo para la implementación de CGI en Internet Information Server:
Se dará cuenta de que las aplicaciones CGI suelen ser ejecutables independientes en contraste a las aplicaciones ISAPI, que suelen cargarse como DLL y son, por tanto, extensiones del servidor. Por consiguiente, las aplicaciones ISAPI proporcionan mejor rendimiento que las aplicaciones y archivos de comandos CGI.

Consideraciones acerca de la seguridad de los ejecutables

Los ejecutables CGI deben utilizarse con mucho cuidado para evitar posibles riesgos de seguridad para el servidor. Como regla general, sólo debe dar permiso de Ejecución a aquellos directorios virtuales que contengan aplicaciones CGI o ISAPI (API de Internet Server).

Recomendamos encarecidamente que configure la asignación de archivos de comandos, ya que ésta garantiza que se inicie el intérprete correcto (por ejemplo, Cmd.exe) cuando un cliente solicita un archivo ejecutable.

A los directorios de contenido de World Wide Web sólo hay que asignarles permiso de Lectura. Aquellos archivos ejecutables cuya finalidad sea descargarlos desde las unidades con el Sistema de archivos de Windows NT (NTFS) sólo deben tener permiso de Lectura.

Es posible ejecutar archivos por lotes como archivos ejecutables CGI, aunque debe hacerlo como mucho cuidado para que el servidor no sufra ningún daño.

Nota   Los archivos ejecutables de CGI también pueden tener las extensiones de archivo .exe o .cgi.

Permiso de ejecución para aplicaciones ISAPI

Internet Information Server abre las aplicaciones ISAPI en el contexto de seguridad del usuario que llama. Dicho usuario debe pasar una comprobación de seguridad. Para restringir la ejecución a los usuarios seleccionados, los permisos de NTFS pueden utilizarse con aplicaciones ISAPI, como el Conector de bases de datos de Internet (IDC).

Por ejemplo, para asegurar el IDC sin poner permisos en el archivo .idc, puede otorgar permiso de Ejecución de NTFS para Inetsrv\Httpodbc.dll a los usuarios adecuados. Httpodbc.dll es el nombre de la DLL de la aplicación ISAPI que implementa el IDC. Posteriormente, cada vez que un usuario intente ejecutar el IDC, el servidor comprobará los permisos y sólo se permitirá el acceso a aquellos usuarios que dispongan de permiso de Ejecución.

Nota   Tras cargar una aplicación ISAPI, ésta permanece cargada hasta que el servicio WWW se detiene. Una vez que la aplicación ISAPI se ha cargado, Internet Information Server no realiza un seguimiento de los cambios del descriptor de seguridad. Si cambia los permisos para una aplicación ISAPI después de haberse cargado, tendrá que detener y reiniciar el servicio WWW antes de que dicho cambio surta efecto.

Tenga cuidado a la hora de definir las Listas de control de acceso (ACL) del directorio Winnt y sus subdirectorios. Algunas aplicaciones y bases de datos ISAPI requieren acceso a algunos archivos y DLL de estos directorios.

Nota   Las DLL de las aplicaciones ISAPI pueden tener la extensión de archivo .dll o .isa.

Instalación de su aplicación en Internet Information Server

Una vez que haya escrito la aplicación o el archivo de comandos, colóquela en el directorio Scripts, un directorio virtual para aplicaciones. Este directorio virtual tiene acceso de Ejecución.

También tiene que asegurarse de que cualquier proceso iniciado por la aplicación se ejecuta usando una cuenta con los permisos correctos. Si la aplicación interactúa con otros archivos, la cuenta asignada al programa debe disponer de los permisos necesarios para usar dichos archivos. De forma predeterminada, las aplicaciones se ejecutan usando la cuenta IUSR_nombreequipo, que debe tener permisos de Administrador y Ejecución para los archivos de la aplicación.

Ejecución de su aplicación

Si su aplicación no requiere que el usuario escriba datos, normalmente creará un vínculo con dicha aplicación en un archivo HTML sencillo. Si su aplicación requiere que el usuario escriba datos, probablemente usará un formulario HTML. En otros casos puede enviar una dirección URL, normalmente con parámetros, para llamar al programa.

Un vínculo HTML con una aplicación que no requiera que el usuario escriba datos podría ser como el siguiente ejemplo:

http://www.organizacion.com/scripts/catalogo.exe

donde Scripts es el directorio virtual para aplicaciones interactivas.

Si va a crear una aplicación que requiera que el usuario escriba datos, tiene que conocer los formularios HTML y cómo usarlos con ISAPI o con CGI. Puede encontrar esta información en Internet y en otros lugares.

Asociación de intérpretes con aplicaciones

Como dispone de la flexibilidad para crear aplicaciones en casi cualquier lenguaje de programación, Internet Information Server utiliza la extensión del archivo para determinar el intérprete que se llama para cada aplicación. A continuación se muestran las asociaciones de intérpretes predeterminadas. Para crear asociaciones adicionales, puede usar el Editor del registro de configuraciones.

Extensión Intérprete predeterminado
.bat, .cmd Cmd.exe
.idc Httpodbc.dll
.exe, .com System

Implicaciones de seguridad

Cuando permite que usuarios remotos ejecuten aplicaciones en su PC, corre el riesgo de que algún pirata intente entrar en su sistema. Microsoft Internet Information Server está configurado de forma predeterminada para reducir el riesgo de intrusismo malintencionado, de dos maneras.

En primer lugar, el directorio virtual Scripts contiene las aplicaciones y está marcado como directorio de aplicaciones. Sólo un administrador puede agregar programas a un directorio marcado como directorio de aplicaciones. Así, los usuarios no autorizados no pueden copiar y ejecutar un programa con malas intenciones en su PC sin tener privilegios de administrador.

Es recomendable que otorgue permiso de Lectura y Ejecución a la cuenta IUSR_nombreequipo del directorio asociado a la carpeta virtual y sólo otorgue Control total al administrador. Los archivos de comandos de Perl (extensión de archivo .pl) y los archivos IDC (extensiones de archivos .idc y .htx) necesitan permiso de Lectura y Ejecución. No obstante, para evitar que alguien instale algún archivo poco seguro en su servidor, no otorgue permiso de Escritura.

En segundo lugar, si el servicio WWW se ha configurado para permitir sólo inicios de sesión anónimos, todas las peticiones de los usuarios remotos usarán la cuenta IUSR_nombreequipo. De forma predeterminada, la cuenta IUSR_nombreequipo no puede eliminar o modificar archivos usando el Sistema de archivos de Windows NT (NTFS) a menos que el administrador le haya dado permiso para ello de manera específica. Así, incluso si se hubiera introducido un programa malintencionadamente en su PC, no podría provocar muchos daños en su contenido porque sólo tendría acceso de IUSR_nombreequipo al equipo y a los archivos.


Arriba Publicación de información y uso de una base de datos

Con el servicio WWW y los controladores ODBC que proporciona Internet Information Server, puede:

Funcionamiento del Conector de bases de datos de Internet

En el siguiente diagrama se muestra conceptualmente el acceso a bases de datos desde Internet Information Server.

[08_I260F  3498 bytes ]

Los exploradores de Web (como Internet Explorer o los exploradores de otros fabricantes como Netscape) remiten peticiones al servidor Internet usando HTTP. El servidor Internet responde con un documento en formato HTML. El acceso a las bases de datos se realiza mediante un componente de Internet Information Server llamado Conector de bases de datos de Internet (IDC). El Conector de bases de datos de Internet, Httpodbc.dll, es una DLL ISAPI que utiliza ODBC para tener acceso a las bases de datos.

La siguiente ilustración muestra los componentes de Internet Information Server para conectar con las bases de datos.

[08_I260g  4804 bytes ]

El IDC utiliza dos tipos de archivos para controlar la forma de acceso a la base de datos y el modo en que se construye la página Web de salida. Dichos archivos son archivos del Conector de bases de datos de Internet (.idc) y archivos de extensión HTML (.htx).

Los archivos del Conector de bases de datos de Internet contienen la información necesaria para conectar con el origen de datos ODBC adecuado y ejecutar la instrucción SQL. Además, contienen el nombre y la ubicación del archivo de extensión HTML.

El archivo de extensión HTML constituye la plantilla para el documento HTML real que se devolverá al explorador de Web cuando el IDC haya combinado su información con la base de datos.

Instalación de ODBC y creación de los orígenes de datos del sistema

Cuando selecciona la opción ODBC durante la instalación, se instalan los componentes de ODBC versión 2.5. Esta versión de ODBC acepta DSN (Nombres de origen de datos) del sistema y es necesaria para utilizar ODBC con Microsoft Internet Information Server.

Los DSN del sistema se introdujeron en la versión 2.5 de ODBC para permitir que los servicios de Windows NT usaran ODBC.

Para instalar los controladores ODBC

Para crear los orígenes de datos del sistema


Importante   Asegúrese de hacer clic en dicho botón. El Conector de bases de datos de Internet sólo funciona con DSN del sistema.

Controladores ODBC de 32 bits

El conector de bases de datos de Internet requiere controladores ODBC de 32 bits. Para obtener información acerca de la opción ODBC, vea los archivos de Ayuda de Internet Information Server o el archivo de Ayuda de ODBC para Windows NT.

Controladores ODBC de Microsoft Access

El Conector de bases de datos de Internet requiere los controladores ODBC de 32 bits que se incluyen en Microsoft® Office 95 y Microsoft® Access 95. El controlador ODBC de Microsoft Access 2.0 no funcionará con Internet Information Server.

Creación de páginas Web con bases de datos de Access

Para proporcionar acceso a una base de datos SQL desde su página Web, necesitará crear un archivo del Conector de bases de datos de Internet (extensión de archivo .idc) y un archivo de extensión HTML (extensión de archivo .htx).

Paseo por una consulta de bases de datos de ejemplo

Este ejemplo comienza con una sencilla página Web llamada Sample.htm. Dicha página contiene un vínculo que dará como resultado la ejecución de una consulta utilizando el controlador ODBC para Microsoft SQL Server, cuyos resultados se devuelven como otra página Web.

La ilustración siguiente muestra Dbsamp1.htm tal como aparece en Microsoft Internet Explorer (suponiendo que Internet Information Server se ha instalado en un equipo llamado “servidorweb”).

[08_I260M  3615 bytes ]

Cuando se hace clic en el vínculo “Haga clic aquí para ejecutar la consulta”, se envía al servidor otra dirección URL. La dirección URL precede al texto del vínculo (tiene formato de texto oculto):

<A HREF="http://servidorweb/samples/dbsamp/dbsamp1.idc">Haga clic aquí para ejecutar la consulta</A>

En la dirección URL ya se ha hecho referencia al archivo del Conector de bases de datos de Internet que va a utilizar el IDC (Dbsamp1.idc). La asignación de un archivo de extensión hace innecesario que se haga referencia a Httpodbc.dll en la dirección URL.

En Internet Information Server, todo el proceso de utilizar el Conector de bases de datos de Internet para este ejemplo se realiza en seis pasos, tal como se muestra en el siguiente diagrama.

[08_I260N  4709 bytes ]


[08_I260O  4846 bytes ]

Descripción del archivo Sample.htx

Para devolver los datos al cliente de WWW, el archivo .idc combina el archivo de extensión HTML, .htx, y los datos de ODBC. Tras ello los datos combinados se adjuntan a encabezados HTTP estándar (200 estado OK, tipo de contenido, etc.), pasan al servicio WWW y se devuelven al cliente.

El archivo .htx es un documento HTML con algunas etiquetas adicionales que van entre <%%> o <!--%%-->, que el archivo .idc utiliza para agregar datos dinámicos al documento. El formato HTML del archivo .htx suele dar formato a los datos que se devuelven. Hay seis palabras claves (begindetail, enddetail, if, else, endif y “%z”) que controlan la forma en que se combinan los datos de la base de datos y el formato HTML en el archivo .htx. Los nombres de las columnas de la base de datos especifican cuáles son los datos que se devuelven en el documento HTML. Por ejemplo, la línea siguiente de un archivo .htx combina datos de la columna Nombrecorreoelectrónico de todos los registros procesados:

<%begindetail%><%Nombrecorreoelectronico%><%enddetail%>

El archivo Sample.htx es un documento HTML que contiene etiquetas del Conector de bases de datos de Internet para los datos devueltos por la base de datos (por motivos de claridad, las etiquetas aparecen en negrita). Para resaltar las etiquetas del IDC se ha eliminado una parte del formato HTML.

Para que el ejemplo sea más claro, se ha eliminado casi todo el formato HTML.

<HTML>
<BODY>
<HEAD><TITLE>Autores y ventas anuales</TITLE></HEAD>
<%if idc.sales eq ""%>

<H2>Autores con ventas superiores a<I>5000</I></H2>
<%else%>

<H2> Autores con ventas superiores a<I><%idc.sales%></I></H2>
<%endif%>

<P>
<%begindetail%>
<%if CurrentRecord EQ 0 %>

Resultados de la consulta:
<B>Ventas anuales del autor<BR></B>
<%endif%>
<%au_lname%>
<%ytd_sales%>
<%enddetail%>
<P>
<%if CurrentRecord EQ 0 %>
<I><B>Ninguno de los autores tiene unas ventas anuales superiores a </I><%idc.sales%>.</B>

<P>
<%else%>

<HR>
<I>
La página Web que verá aquí se creó combinando los resultados de la consulta SQL y el archivo de plantilla Sample.htx.
<P>
La combinación la realizó el Conector de bases de datos de Internet de Microsoft y Microsoft Internet Information Server devolvió los resultados a este explorador de Web.
</I>
<%endif%>

</BODY>
</HTML>

Las secciones <%begindetail%> y <%enddetail%> delimitan el lugar del documento donde aparecerán las filas devueltas por la base de datos. Las columnas devueltas por la consulta aparecerán rodeadas por <%%>; en este ejemplo son <%au_lname%> y <%ytd_sales%>.

Aprender las características del Conector de bases de datos de Internet

El Conector de bases de datos de Internet tiene varias características que facilitan la creación de páginas Web que contengan datos de una base de datos.

Archivos del Conector de bases de datos de Internet

Los archivos del Conector de bases de datos de Internet contienen la información que se utiliza para tener acceso a la base de datos. La siguiente sección describe las características de los archivos del Conector de bases de datos de Internet.

Parámetros

El ejemplo de la sección anterior sólo muestra el tipo de consulta más sencillo, una consulta que se ha definido completamente en un archivo del Conector de bases de datos de Internet. Aunque este tipo de consulta es útil, pueden crearse páginas Web aún más potentes mediante la utilización de parámetros. Los parámetros son los nombres y valores de los controles del formulario de HTML, como por ejemplo “<INPUT…>”, así como los nombres especificados directamente en las direcciones URL. Estos nombres y valores los envían los exploradores de Web y pueden utilizarse en instrucciones SQL del servidor.

Por ejemplo, en la última sección, la consulta de Sample.idc sólo ha devuelto aquellos autores cuyas ventas anuales superan 5000. Utilizando un parámetro, podría crear una página Web que preguntara al usuario si desea cambiar el número 5000.

La página Web debe solicitar al usuario la cifra de ventas anuales y, a continuación, dar el nombre “sales” a la variable asociada. Dbsamp2.htm muestra un formulario con un campo de entrada que se utiliza para obtener el número:

[08_I260PK  4076 bytes ]

La sintaxis del campo de entrada y el botón de Sample2.htm en formato HTML es la siguiente:

<FORM METHOD="POST" ACTION="/scripts/samples/sample2.idc">
<P>
Escriba las ventas anuales hasta la fecha: <INPUT NAME="sales" VALUE="5000" >
<P>
<INPUT TYPE="SUBMIT" VALUE="Ejecutar consulta">
</FORM>

En el archivo Sample2.idc del Conector de bases de datos de Internet se utiliza el parámetro que aparece en negrita en lugar del número 5000:

SQLStatement:
+SELECT au_lname, ytd_sales
+ from pubs.dbo.titleview
+ where ytd_sales > %sales%

Aquí el nombre del parámetro debe ser “sales” para que corresponda a <INPUT NAME= “sales” …> de la página Web. Los parámetros deben estar entre signos de porcentaje (%) para distinguirlos de un identificador normal de SQL. Cuando el Conector de bases de datos de Internet encuentra el parámetro en el archivo .idc, sustituye el valor enviado por el explorador de Web y, posteriormente, envía la instrucción SQL al controlador ODBC.

El signo de porcentaje (%) es también un carácter comodín de SQL. Los comodines se utilizan en las consultas SQL para buscar un elemento de una tabla que contenga determinados caracteres. Para insertar un único signo “%” en un comodín SQL, utilice “%%”. Esto evita que el IDC intente utilizar % como marcador de parámetro. Por ejemplo:

Instrucción SQL:
+SELECT au_lname, ytd_sales, title
+ from pubs.dbo.titleview
+ where title like '%%%título%%%'

Para que un signo de porcentaje se reconozca como un comodín de SQL debe especificarlo dos veces y, a continuación, agregar los caracteres de porcentaje alrededor del parámetro para distinguir la cadena como parámetro. En el ejemplo, la consulta busca la palabra título en todas las entradas de la columna de títulos. Esta consulta devuelve lo siguiente:

título
título y hecho
página del título principal
autor y título

Para devolver todas las entradas que contienen la palabra título en las seis primeras letras, debe dar el siguiente formato a las consultas:

Instrucción SQL:
+SELECT au_lname, ytd_sales, title
+ from pubs.dbo.titleview
+ where title like '%título%%%'

En este ejemplo se devuelven los siguientes resultados:

título
título y hecho

Para devolver todas las entradas que contengan la palabra título como las seis últimas letras, debe dar el siguiente formato a las consultas:

Instrucción SQL:
+SELECT au_lname, ytd_sales, title
+ from pubs.dbo.titleview
+ where title like '%%%título%'

En este ejemplo se devuelven los siguientes resultados:

título
autor y título

Es posible crear potentes conjuntos de páginas Web utilizando el resultado de una consulta para proporcionar vínculos con otras consultas. Por ejemplo, para mostrar los títulos de un autor individual, en lugar de devolver el nombre del autor como texto normal, puede darle formato como un vínculo y, a continuación, utilizar el vínculo para realizar otra consulta.

En otro ejemplo incluido en Internet Information Server se muestra cómo crear este tipo de vínculos. Dbsamp3.htm se utiliza para ejecutar la consulta en Sample3.idc, que utiliza Sample3.htx como plantilla de salida. Sample3.htx devolverá los apellidos de los autores como vínculos y, al hacer clic en ellos, mostrarán los títulos de cada autor utilizando Sample3a.idc y Sample3a.htx.

Campos de los archivos del Conector de bases de datos de Internet (.idc)

En las siguientes tablas aparece una lista con los campos que pueden especificarse en un archivo del Conector de bases de datos de Internet. Observe que los parámetros o las variables del servidor pueden aparecer en cualquier lugar del archivo .idc.

Campos necesarios en un archivo del Conector de bases de datos de Internet (.idc)
Campo Descripción
Datasource El nombre que corresponde al Nombre del origen de datos (DSN) del sistema ODBC que ha creado previamente utilizando el Administrador de ODBC o la herramienta proporcionada con los ejemplos.
Template El nombre del archivo con extensión HTML que da formato a los datos devueltos por esta consulta. Por convención, estos archivos utilizan la extensión .htx.
SQLStatement La instrucción SQL que se va a ejecutar. La instrucción SQL puede contener valores de parámetros, que deben ir entre signos de porcentaje (%), del cliente. En el archivo del Conector de bases de datos de Internet, la instrucción SQL puede ocupar varias líneas. Después del campo SQLStatement, todas las líneas que comiencen con un signo más (+) se considerarán parte del campo SQLStatement. En el mismo archivo pueden aparecer varias instrucciones SQL.

Campos opcionales en un archivo del Conector de bases de datos de Internet (.idc)
Campo Descripción
DefaultParameters = parám=valor

[, parám=valor]
[…]

Los valores de los parámetros, si hay alguno, que se van a utilizar en el archivo del Conector de bases de datos de Internet siempre que el cliente no especifique algún parámetro.
Expires El número de segundos que hay que esperar antes de actualizar una página con salida en caché. Si una petición posterior es idéntica, la página de caché se devolverá sin tener acceso a la base de datos. Este campo es útil cuando desee forzar una nueva consulta de la base de datos tras un determinado periodo de tiempo. De forma predeterminada, el IDC no pone en caché las páginas de salida. Sólo las incluye en caché cuando se utiliza el campo Expires.
MaxFieldSize El espacio de búfer máximo por campo que asigna el IDC. Los caracteres posteriores a éste se truncarán. El parámetro se aplica sólo a aquellos campos de la base de datos que superen los 8192 bytes. El valor predeterminado es 8192.
MaxRecords El número máximo de registros que el IDC devolverá de cualquier consulta. El valor MaxRecords no se define de forma predeterminada, lo que significa que una consulta puede devolver hasta 4.000 millones de registros. Defina este valor para limitar los registros devueltos.
ODBCConnection Inserte este campo con el valor de agrupación para agregar la conexión a la agrupación de conexiones, que conserva la conexión con la base de datos abierta para futuras peticiones. A continuación, el IDC envía los datos a través de una conexión agrupada para la posterior ejecución de un archivo .idc que contiene los mismos valores de Datasource, Username y Password. Defina esta opción para mejorar el rendimiento utilizando el Conector de bases de datos de Internet. Además, hay una opción sin agrupación, que especifica que la conexión del archivo .idc en la que se define esta opción no debe tomarse de la agrupación de conexiones. Para administrar la caché de conexiones con más precisión, defina el valor de este campo como nopool. Además, si hay un límite en cuanto al número de conexiones actuales, probablemente no desee que la agrupación de conexiones monopolice todas las conexiones; de lo contrario, nadie podría conectarse a SQL Server.

Nota Para definir el valor predeterminado de la agrupación de conexiones, debe definir como 1 la entrada del Registro PoolIDCConnections. Para obtener más detalles, consulte el capítulo 10, “Configuración de las entradas del Registro ”.

Passwords La contraseña que corresponde al nombre de usuario. Si no hay ninguna contraseña, este campo puede dejarse en blanco.
RequiredParameters Los nombres de los parámetros, si hay alguno, que Httpodbc.dll se asegura que pasarán del cliente; de lo contrario, devolverá un error. Los nombres de los parámetros se separan mediante comas.
Translationfile La ruta de acceso al archivo que asigna caracteres no ingleses (como à, ô o é) para que los exploradores puedan mostrarlos adecuadamente en formato HTML. Si el archivo de traducción no está en el mismo directorio que el archivo .idc, debe escribir la ruta de acceso completa al archivo de traducción. Sintaxis: Translationfile: C:\nombre_directorio\nombre_archivo. Si publica una base de datos en un idioma que no sea inglés, utilice el campo Translationfile. Un archivo de traducción es un archivo de texto en el que los caracteres especiales se asignan en el siguiente formato: valor=cadena<CR>, donde valor es un carácter internacional y cadena es el código de traducción de HTML.
Username Un nombre de usuario válido para el origen de datos proporcionado por el campo Datasource.

Nota Si utiliza Microsoft SQL Server con la opción de seguridad integrada, los campos de nombre de usuario y contraseña del archivo .idc se ignoran. La conexión con SQL Server se realiza utilizando las credenciales del usuario Web. Si la petición se realiza como un usuario anónimo, el nombre de usuario y la contraseña están determinados por la configuración del usuario anónimo (el valor predeterminado es IUSR_nombreequipo) del Administrador de servicios de Internet. Si la petición del cliente contenía credenciales para la conexión, el nombre de usuario y la contraseña proporcionados por el usuario final se utilizan para conectarse a SQL Server.

Content-Type Cualquier tipo MIME válido que describa qué se devolverá al cliente. Si el archivo .htx contiene HTML, casi siempre será “text/html”.

Campos opcionales avanzados de ODBC

Las opciones avanzadas de ODBC permiten depurar y ajustar el controlador ODBC utilizado por el Conector de bases de datos de Internet. Para obtener más detalles acerca de estas opciones, consulte la documentación de su controlador ODBC o el Software Development Kit (SDK) de ODBC. El formato del archivo IDC es:

ODBCOptions: Nombre_opción=Valor[,Nombre_opción=Valor…]

Por ejemplo, para que la instrucción SQL deje de ejecutarse durante más de 10 segundos y activar el seguimiento de las llamadas a funciones ODBC en el archivo IDC tiene que especificar lo siguiente:

ODBCOptions: SQL_QUERY_TIMEOUT=10, SQL_OPT_TRACE=1, SQL_OPT_TRACEFILE=C:\Sql.log

En la siguiente tabla se especifican todas las opciones:

Nombre de la opción Valor Propósito
SQL_ACCESS_MODE 0 = Lectura/escritura

1 = Sólo lectura.

Indicador para el controlador de ODBC o el origen de datos de que no requiere la conexión para ser compatible con instrucciones SQL que hacen que se produzcan actualizaciones. Este modo puede utilizarse para optimizar estrategias de bloqueo, la administración de las transacciones u otras áreas apropiadas para el controlador o el origen de datos. El controlador no es necesario para evitar que dichas instrucciones se envíen al origen de datos. El comportamiento del controlador y del origen de datos cuando se les pide que procesen instrucciones SQL que no son de sólo lectura durante una conexión de sólo lectura está definido por la implementación. De forma predeterminada SQL_ACCESS_MODE se establece como 0, lo que permite la lectura y la escritura.
SQL_LOGIN_TIMEOUT Entero El número de segundos que hay que esperar para que finalice un inicio de sesión antes de desconectarse. El valor predeterminado depende del controlador y debe ser distinto de cero. Si el valor es 0, el tiempo de espera se inhabilita y un intento de conexión esperará indefinidamente. Si el tiempo de espera especificado sobrepasa el tiempo de espera de inicio de sesión máximo del origen de datos, el controlador sustituirá dicho valor.
SQL_OPT_TRACE 0 = Desactivar el seguimiento

1 = Activar el seguimiento

Cuando se activa el seguimiento, todas las llamadas a funciones ODBC que realiza Httpodbc.dll se escriben en el archivo de seguimiento. Con la opción SQL_OPT_TRACEFILE se puede especificar un archivo de seguimiento. Si este archivo ya existe, el controlador ODBC se agrega al archivo. De lo contrario, crea el archivo. Si se activa el seguimiento sin especificar ningún archivo de seguimiento, ODBC escribe en el archivo Sql.log.
SQL_OPT_TRACEFILE Nombre de archivo El nombre del archivo de seguimiento que se va a utilizar cuando SQL_OPT_TRACE=1. El valor predeterminado es SQL.LOG
SQL_PACKET_SIZE Entero El tamaño del paquete de red, en bytes, que va a utilizarse para intercambiar información entre el sistema de la administración de bases de datos (DBMS) y el servidor Web.

Note Muchos orígenes de datos no son compatibles con esta opción o sólo pueden devolver el tamaño del paquete de red. Si el tamaño especificado sobrepasa o es menor que el tamaño mínimo del paquete, el controlador sustituye dicho valor.

SQL_TRANSLATE_DLL Nombre de archivo El nombre de una DLL que contiene las funciones SQLDriverToDataSource y SQLDataSourceToDriver, y que el controlador carga y utiliza para realizar tareas como la traducción del juego de caracteres.
SQL_TRANSLATE_OPTION Entero Valor que controla la funcionalidad de traducción, que es específica de la DLL de traducción que se utiliza. Para obtener más detalles, consulte la documentación del controlador y de la DLL de traducción.
SQL_TXN_ISOLATION Entero

1=Lectura no confirmada

2=Lectura confirmada

4=Lectura repetible

8=Serializable

16=Control de versiones

Define el nivel de aislamiento de las transacciones. El Conector de bases de datos de Internet no es compatible con las transacciones que se extienden más que la petición del archivo .idc. Sin embargo, en el caso de algunos DBMS, definir la opción SQL_TXN_ISOLATION como 1 (Lectura no confirmada) dará como resultado una mayor concurrencia y, por tanto, un mejor rendimiento. Sin embargo, con esta configuración pueden recuperarse aquellos datos que otras transacciones no hayan confirmado con la base de datos.
SQL_MAX_LENGTH Entero La cantidad máxima de datos de una columna de caracteres o binaria que devuelve el controlador. Esta opción reduce el tráfico de red y sólo debe utilizarse cuando el origen de datos (lo opuesto al controlador) de un controlador con varias capas pueda implementarlo.
SQL_MAX_ROWS Entero El número máximo de filas que devuelve una instrucción SELECT. Si el valor es 0 (el valor predeterminado), el controlador devuelve todas las filas. Esta opción reduce el tráfico de red cuando el propio origen de datos puede limitar las filas que se devuelven, frente a la variable incorporada MaxRecords del Conector de bases de datos de Internet, que limita las filas recuperadas.
SQL_NOSCAN 0=Buscar y convertir cláusulas de escape

1= No buscar y convertir cláusulas de escape

Especifica si no es necesario que el controlador busque cadenas SQL en cláusulas de escape. Si se define como 0 (el valor predeterminado), el controlador busca cláusulas de escape en cadenas SQL. Si se define como 1, el controlador no busca cláusulas de escape en cadenas SQL; en su lugar el controlador envía la instrucción directamente al origen de datos. En caso de que la instrucción SQL no contenga ninguna cláusula de escape ODBC, la utilización de una sintaxis especial encerrada llaves ( { } ) y la posterior definición de esta opción como 1 proporcionará una pequeña mejora en el rendimiento indicando al controlador que no debe buscar en la cadena SQL.
SQL_QUERY_TIMEOUT Entero

0=Sin tiempo de espera

El número de segundos que hay que esperar para que se ejecute una instrucción SQL antes de cancelar la consulta. Si se define como 0 (el valor predeterminado) no hay tiempo de espera. Si el tiempo de espera especificado sobrepasa el tiempo de espera máximo del origen de datos o es menor que el tiempo de espera mínimo, el controlador sustituirá dicho valor.
Entero Específico del controlador Los valores de la opción específicos del controlador pueden especificarse con el formato número=valor. Por ejemplo,

4322=1, 234=Cadena

Uso de cuadros de lista de selección múltiple en formularios HTML

Cuando se utiliza un formulario HTML que contiene una etiqueta <SELECT MULTIPLE…>, el Conector de bases de datos de Internet convierte los elementos seleccionados en una lista separada por comas; la lista puede utilizarse en el archivo .idc de la misma forma que otros parámetros. No obstante, puesto que el parámetro es realmente una lista, sólo suele utilizarse en instrucciones SQLSelect con una cláusula IN, como en los ejemplos siguientes.

Si el nombre del parámetro del archivo .idc está entre comillas simples, cada elemento de la lista también estará entre comillas simples. Siempre que la columna de la cláusula IN sea una columna de caracteres o de cualquier otro tipo en el que los literales vayan entre comillas (por ejemplo, fechas y horas) debe escribir el nombre del parámetro entre comillas simples. Si no se encuentran comillas simples alrededor del nombre del parámetro, no se colocará ninguna comilla alrededor de cada elemento de la lista. Si la columna de la cláusula IN es de tipo numérico o de cualquier otro tipo en el que los literales no vayan entre comillas simples, no debe escribir el nombre del parámetro entre comillas simples.

Por ejemplo, si un formulario HTML contenía el cuadro de lista de elección múltiple que aparece a continuación:

<SELECT MULTIPLE NAME="región">
<OPTION VALUE="Oeste">
<OPTION VALUE="Este">
<OPTION VALUE="Norte">
<OPTION VALUE="Sur">
</SELECT>

Es posible construir un archivo .idc con una instrucción SQL:

SQLStatement: SELECT nombre, región FROM cliente WHERE región IN ('%región%')

Si el usuario ha seleccionado “Norte”, “Oeste” y “Este” en el formulario HTML, la instrucción SQL se convertiría en:

SELECT nombre, región FROM cliente WHERE región IN ('Norte', 'Oeste', 'Este')

A continuación aparece otro ejemplo de formulario HTML, pero esta vez se utilizan datos numéricos, por lo que esta vez el parámetro del archivo .idc no aparece entre comillas.

<SELECT MULTIPLE NAME="año">
<OPTION VALUE="1994">
<OPTION VALUE="1995">
<OPTION VALUE="1996">
</SELECT>

Es posible construir un archivo .idc con una instrucción SQL:

SQLStatement: SELECT producto, año_ventas FROM ventas WHERE año_ventas IN (%año%)

Si el usuario ha seleccionado “1994” y “1995” en el formulario HTML, la instrucción SQL se convertiría en:

SELECT product, sales_year FROM sales WHERE sales_year IN (1994, 1995)

Uso de consultas por lotes y consultas múltiples

En un archivo .idc, es posible agrupar consultas SQL de dos formas distintas, como consultas por lotes o como consultas múltiples.

Consultas por lotes

Si consulta bases de datos que pueden procesar simultáneamente varias consultas en una única instrucción SQL (como una base de datos de SQL Server), debe dar a las instrucciones el formato por lotes con el fin de optimizar el rendimiento. Por ejemplo:

SQLSTatement:
+insert into perf(testtime, tag) values (getdate(), '%etiqueta%')
+SELECT au_lname, ytd_sales from pubs.dbo.titleview where ytd_sales>5000
+SELECT count(*) as nrecs from pubs.dbo.titleview where ytd_sales>5000

Consultas múltiples

Si consulta bases de datos que no pueden procesar una serie de consultas SQL simultáneamente, formule las consultas como consultas múltiples. Por ejemplo:

SQLStatement:
+insert into perf(testtime, tag) values (getdate(), '%etiqueta%')
SQLStatement:
+SELECT au_lname, ytd_sales from pubs.dbo.titleview where ytd_sales>5000
SQLStatement:
+SELECT count(*) as nrecs from pubs.dbo.titleview where ytd_sales>5000

Las consultas por lotes se procesan juntas inmediatamente, mientras que las consultas múltiples se procesan una a una. Por tanto, si su base de datos puede administrar consultas por lotes, al dar a las consultas un formato por lotes obtendrá mejor rendimiento.

Archivos de extensión (htx) HTML

Los archivos de extensión HTML contienen un número de palabras clave que controlan la construcción del documento HTML de salida. Estas palabras clave se explican en las siguientes secciones.

<%begindetail%>, <%enddetail%>

Las palabras clave <%begindetail%>, <%enddetail%> rodean una sección del archivo de extensión HTML donde se combinarán los archivos de salida de la base de datos. Dentro de la sección, los nombres de columna delimitados por <% y %> o <!--%%-->se utilizan para marcar la posición de los datos devueltos por la consulta. Por ejemplo:

<%begindetail%>
<%au_lname%>: <%ytd_sales%>
<%enddetail%>

presentará las columnas au_lname e ytd_sales. Es posible hacer referencia a cualquier columna de este modo. También puede hacerse referencia a los nombres de columna desde cualquier parte de un archivo de extensión HTML.

Nota   Si la consulta no ha devuelto ningún registro, la sección <%begindetail%> se saltará. Por cada instrucción SQL que genere un conjunto de resultados (por ejemplo, SELECT), debería existir una sección <%begindetail%> <%enddetail%> correspondiente en el archivo .htx.

<%if%>, <%else%>, <%endif%>

Los archivos de extensión pueden contener lógica condicional con una instrucción if-then-else para controlar la construcción de la página Web. Por ejemplo, una utilización habitual es insertar una condición para mostrar los resultados de la consulta en la primera fila, dentro de una sección <%begindetail%>; en el caso de que la consulta no devuelva ningún registro, se mostrará el texto “No hay ningún autor cuyas ventas anuales sean superiores a” %idc.sales%. Mediante la utilización de la instrucción <%if%> y una variable incorporada denominada “CurrentRecord” es posible personalizar el resultado para que se imprima el mensaje de error cuando no se devuelva ningún registro. A continuación se ofrece un ejemplo que muestra la utilización de la instrucción <%if%>.

<%begindetail%><%if CurrentRecord EQ 0 %>

Resultados de la consulta:

<B>Author YTD Sales<BR></B>
<%endif%>
<%au_lname%>
<%ytd_sales%>
<%enddetail%>
<P>
<%if CurrentRecord EQ 0 %>
<I><B>No hay ningún autor cuyas ventas anuales sean superiores a </I><%idc.sales%>.</B>
<P>
<%else%>
<HR>
<I>
La página Web que está viendo se ha creado combinando los resultados de la consulta SQL con el archivo de plantillas Sample.htx.
<P>
La combinación la ha realizado el Conector de bases de datos de Internet de Microsoft y Microsoft Internet Information Server ha devuelto los datos a este explorador de Web.
</I>
<%endif%>

</BODY>
</HTML>

La sintaxis general es:

<%if condición%>
texto HTML
[<%else%>
texto HTML]
<%endif%>

Donde condición tiene el formato siguiente:

y operador puede ser uno de los siguientes:

EQ si valor1 es igual a valor2
LT si valor1 es menor que valor2
GT si valor1 es mayor que valor2
CONTAINS si cualquier parte de valor1 contiene la cadena valor2

Los operandos valor1 y valor2 pueden ser nombres de columnas, una de las variables incorporadas (vea a continuación CurrentRecord o MaxRecords), un nombre de variable HTTP (vea a continuación) o una constante. Cuando se utilizan en una instrucción <%if%>, los valores no están delimitados por <% y %>. Por ejemplo, para que procese al autor “Pérez” de una forma especial, utilice la condición:

<%begindetail%>
<%if au_lname EQ "Pérez"%>
¡Este hombre es pérez!
<%endif%>
<%enddetail%>

La instrucción <%if%> también puede utilizarse para hacer procesos especiales basados en información procedente de variables HTTP. Por ejemplo, para dar un formato diferente a una página basándose en el tipo de explorador de Web del cliente, puede incluir lo siguiente en el archivo de extensión HTML.

<%if HTTP_USER_AGENT contains "Maruja"%>
el cliente acepta características avanzadas de HTML
<%else%>
el cliente es <%HTTP_USER_AGENT%>
<%endif%>

CurrentRecord, MaxRecords

La variable incorporada CurrentRecord contiene el número de veces que se ha procesado la sección <%begindetail%>. La primera vez que se procese la sección <%begindetail%>, el valor será cero. Posteriormente, el valor de CurrentRecord cambia cada vez que se toma otro registro de la base de datos.

La variable incorporada MaxRecords contiene el valor del campo MaxRecords del archivo del Conector de bases de datos de Internet. Tanto MaxRecords como CurrentRecord sólo pueden utilizarse en instrucciones <%if%>.

Parámetros de los archivos del Conector de bases de datos de Internet

Es posible tener acceso a archivos del Conector de bases de datos de Internet en el archivo de extensión HTML colocando el prefijo “idc” y un punto delante del nombre del parámetro. En Sample3.htx, mostrado anteriormente en este mismo capítulo, puede mostrar el valor del parámetro %sales% incluyendo la línea:

El valor del parámetro sales es: <%idc.sales%>

Variables HTTP

Algunas variables de los archivos de extensión HTML pueden proporcionar una gran cantidad de información acerca del entorno y del cliente Web conectado al servidor. Además, estarán disponibles todos los encabezados enviados por el cliente. Para tener acceso a ellos utilizando el Conector de bases de datos de Internet debe convertirlas:


La siguiente tabla muestra una lista de las variables predeterminadas. Son las variables de entorno para las aplicaciones CGI y las variables HTTP para las aplicaciones IDC.

Variables de Internet Information Server Server
Variable Significado
ALL_HTTP Todos los encabezados HTTP que aún no se hayan analizado en alguna de las variables de la lista. Estas variables tienen el formato HTTP_<nombre del campo encabezado>, por ejemplo:

HTTP_ACCEPT: */*, q=0.300, audio/x-aiff, audio/basic, image/jpeg, image/gif, text/plain, text/html

HTTP_USER_AGENT: Microsoft Internet Explorer/0.1 (Win32)

HTTP_REFERER: http://webserver/samples/dbsamp/dbsampp3.htm

HTTP_CONTENT_TYPE: application/x-www-form-urlencoded

HTTP_CONTENT_LENGTH: 10

AUTH_TYPE El tipo de autorización que se esté utilizando. Si el servidor ha autentificado el nombre del usuario, ésta contendrá Basic. De lo contrario, no estará presente.
CONTENT_LENGTH El número de bytes que el archivo de comandos espera recibir del cliente.
CONTENT_TYPE El tipo de contenido de la información proporcionada en la parte principal de una petición POST.
GATEWAY_INTERFACE La revisión de la especificación CGI (Interfaz de puerta de enlace o gateway común) con la que cumple el servidor.
HTTP_ACCEPT Encabezado HTTP especial. Los valores de los campos Accept: están concatenados y separados por una coma (,); por ejemplo, si las siguientes líneas forman parte del encabezado HTTP:

accept: */*; q=0.1

accept: text/html
accept: image/jpeg

entonces la variable HTTP_ACCEPT tendrá un valor:

*/*; q=0.1, text/html, image/jpeg
LOGON_USER La cuenta de Windows NT del usuario.
PATH_INFO Información adicional acerca de la ruta de acceso, como la proporciona el cliente. Incluye la parte la parte final de la dirección URL, tras el nombre del archivo de comandos pero antes de la cadena de consulta (si la hay).
PATH_TRANSLATED El valor de PATH_INFO, pero con cualquier nombre de ruta de acceso virtual expandido a una especificación de directorio.
QUERY_STRING La información que aparece después del signo de interrogación (?) en la dirección URL que hizo referencia a este archivo de comandos.
REMOTE_ADDR La dirección IP del cliente.
REMOTE_HOST El nombre de host del cliente.
REMOTE_USER El nombre de usuario proporcionado por el cliente y autentificado por el servidor.
REQUEST_METHOD El método de peticiones de HTTP.
SCRIPT_NAME El nombre del programa de archivos de comandos que se ejecuta.
SERVER_NAME El nombre de host del servidor (o la dirección IP) como debería aparecer en la dirección URL con referencia propia.
SERVER_PORT El puerto TCP/IP en el que se recibió la petición.
SERVER_PORT_SECURE El valor 0 ó 1. El valor 1 indica que la petición se encuentra en el puerto codificado.
SERVER_PROTOCOL El nombre y la versión del protocolo de recuperación de la información relativa a esta petición, habitualmente HTTP/1.0.
SERVER_SOFTWARE El nombre y la versión del servidor Web bajo el que se ejecuta Internet Server Extension.
URL La dirección URL de la petición.


Contenidos Índice Capítulo anterior Arriba Capítulo siguiente

© 1996 Microsoft Corporation. Reservados todos los derechos.