Qué notificará Windows Internet Explorer como la cadena user-agent
Nota: Esta información es preliminar y está sujeta a cambios.
La cadena user-agent es la identidad de un explorador tal como se notifica a los sitios web mediante tráfico HTTP. Un desarrollador web puede usar la cadena user-agent para detectar el explorador que usa un visor para ver un sitio web. El conocimiento de los procedimientos recomendados para la detección de explorador garantiza que el sitio siga funcionando del modo previsto cuando lo visitan clientes de Windows Internet Explorer 8.
En este documento se explica la estructura de la cadena user-agent y los valores que Windows Internet Explorer notifica al servidor. Además, se ofrece código de ejemplo para ayudar a los desarrolladores web a implementar y mantener los procedimientos recomendados para la detección de explorador.
Descripción de la cadena user-agent
Cuando se solicita una página web, el explorador envía una serie de encabezados al servidor web que hospeda el sitio que está visitando. Cada encabezado contiene detalles que ayudan al servidor web a determinar la mejor manera de ofrecer la información que se ha solicitado. Un encabezado, denominado user-agent, identifica la aplicación que solicita la información desde el servidor. La cadena user-agent puede contener detalles opcionales, denominados símbolos (tokens), que deben estar entre paréntesis y que varían de un programa a otro. Windows Internet Explorer usa símbolos para describir detalles adicionales acerca del sistema.
En la figura 1 se muestra una cadena user-agent de ejemplo notificada por Windows Internet Explorer que resalta sus símbolos.
Figura 1
Por motivos históricos, Windows Internet Explorer se identifica como un explorador Mozilla 4.0.
El ejemplo de cadena user-agent anterior contiene tres símbolos:
- La marca de compatibilidad (mostrada aquí como "compatible") que usan la mayoría de los exploradores modernos. Indica que Windows Internet Explorer es compatible con un conjunto común de características.
- El símbolo o token de versión, que identifica el explorador y contiene el número de versión. El símbolo de versión de la figura 1 ("MSIE 8.0") identifica Windows Internet Explorer 8. Windows Internet Explorer 7 devolverá el símbolo de versión “MSIE 7.0”.
- El símbolo o token de plataforma, que identifica el sistema operativo y contiene el número de versión. El símbolo de plataforma de la figura 1 ("Windows NT 6.0") indica Windows Vista.
En la figura 1, Windows Internet Explorer 8 es el agente de usuario. No obstante, otros programas también proporcionan cadenas user-agent al ponerse en contacto con los servidores a través de Internet.
Puede determinar fácilmente lo que el explorador envía como su cadena user-agent si escribe la siguiente línea de código en la barra de dirección.
javascript:alert(navigator.userAgent)
Cuando se ejecuta el código, muestra un mensaje de alerta emergente con la cadena user-agent completa del explorador.
Para obtener más información acerca de las cadenas user-agent, consulte Descripción de las cadenas user-agent.
Detección de explorador con la cadena user-agent
Puede usar scripting de lado cliente para analizar la cadena user-agent y extraer el número de versión del símbolo de versión para detectar Windows Internet Explorer.
El siguiente ejemplo de código muestra dos funciones de Microsoft Jscript que combinadas representan la mejor técnica para determinar la versión de Windows Internet Explorer que usa un visor.
function getInternetExplorerVersion()
// Returns the version of Windows Internet Explorer or a -1
// (indicating the use of another browser).
{
var rv = -1; // Return value assumes failure.
if (navigator.appName == 'Microsoft Internet Explorer')
{
var ua = navigator.userAgent;
var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
if (re.exec(ua) != null)
rv = parseFloat( RegExp.$1 );
}
return rv;
}
function checkVersion()
{
var msg = "You're not using Windows Internet Explorer.";
var ver = getInternetExplorerVersion();
if ( ver> -1 )
{
if ( ver>= 8.0 )
msg = "You're using a recent copy of Windows Internet Explorer."
else
msg = "You should upgrade your copy of Windows Internet Explorer.";
}
alert( msg );
}
En este ejemplo, la función getInternetExplorerVersion() analiza la cadena user-agent enviada por el explorador y devuelve el número de versión. La función checkVersion() llama a getInternetExplorerVersion() y compara el valor devuelto con el número de versión que desea comprobar, en este ejemplo, Version 8. Debe observar que se usa una comparación mayor o igual que. Esto garantiza que la función está lista para versiones futuras de Windows Internet Explorer y que no tendrá que actualizar el código si se lanza una nueva versión de Windows Internet Explorer.
Otras técnicas de detección de explorador
Un vector de versión hace referencia al número de versión interno de Windows Internet Explorer, que se almacena en una clave del Registro leída en un inicio del explorador. Los comentarios condicionales se pueden usar con vectores de versión para detectar la versión de explorador. Puede usar el vector de versión en vez las cadenas user-agent, o además de ellas, para detectar el explorador que se usa para ver el sitio web. Para obtener más información acerca de los vectores de versión y cómo usarlos para detectar versiones de explorador, consulte Vectores de versión.
Una de las ventajas de usar scripting de lado cliente es que se pueden detectar los exploradores distintos de Windows Internet Explorer. El scripting también es más flexible que los comentarios condicionales. Los comentarios condicionales son efectivos si se dirigen específicamente a Windows Internet Explorer, como para una configuración de CSS personalizada.