Cabeceras de HTTP para móviles

Las cabeceras HTTP en un sitio web ayudan a clarificar las características de los datos que están siendo enviados desde la web. Una gran variedad de cabeceras puede ser incluidas en una página web, pero las siguientes cabeceras son las más relevantes para el desarrollo de sitios web móviles.

Perfiles de User Agent

Los perfiles de User Agent son almacenados en un document XML en un servidor llamado repositorio de perfiles, el cual, frecuentemente es mantenido por el fabricante del dispositivo. El UAProf (perfil de Uear Agent) es almacenado en la cabecera del teléfono móvil y es recibido por el site cuando se envía la primera petición. La cabecera contiene un link hacia el servidor y este envía información sobre el tamaño de la pantalla y otros elementos importantes del teléfono móvil. Esto permite al fabricante de móviles actualizar la información del perfil de User Agent de manera independiente de los sitios web y de los dispositivos móviles.

Cabecera de User-Agent

La cabecera de User-Agent es almacenada en el móvil. El sitio web  puede solicitar y checkear esta cabecera para determinar el tipo de contenido que debería ser servido. Esto se explica en detalle en un apartado posterior, donde se explica cómo se dirige tráfico con la detección del User-Agent.

Chequear esta cabecera es especialmente importante si se tiene páginas o contenido que ha sido especialmente creado para específicos User-Agents, o si se está mostrando contenido dinámicamente mediante detección de User-Agent o especificaciones de dispositivo. Una de las principales dificultades de las cabeceras de User-Agent es que el formato de la cabecera es diferente entre teléfonos y fabricantes de teléfonos.  Debido a que esto puede crear confusión y pérdida de tiempo, la lista de User-Agents de móviles está disponible de manera online. A éstos también se puede acceder desde el sitio web del fabricante del teléfono. En el siguiente enlace se encuentra una lista con algunos de los user agents más populares: http://www.mobgold.com/updates/resources/list-of-user-agents-for-mobile-phones.html

Cache-Control

La cabecera de Cache-Control es usada para especificar qué elementos de la página deberían ser cacheados por el móvil o por el servidor.  Cuando se trabaja con dispositivos móviles, es importante minimizar la cantidad de contenido que los móviles deben descargar. Permitiendo a los navegadores cachear la hoja de estilo, logo o imágenes de la plantilla se evitará tener que cargar estos elemento cada vez, minimizando así el ancho de banda necesario para mostrar el site. Cuando esto es necesario, la cabecera de Cache-Control puede también prevenir re-usar contenido que ha sido adaptado para un dispositivo pero que no debería ser usado en otros. Las siguientes directivas son de gran utilidad para site móviles:

  • “Cache-Control: public” permite que el contenido sea cacheado y compartido entre diferentes dispositivos.
  • “Cache-Control: private” permite cachear el contenido para poder re-usarlo, pero sólo por una petición original de un dispositivo.
  • “Cache-Control: no-cache” no permite cachear el site ni en el móvil ni en el servidor

Content-Type

La petición de la cabecera Http de Content-type describe varios aspectos del contenido que está siendo enviado, incluyendo el conjunto de caracteres,  codificación y tipo de MIME (Multipurpose Internet Mail Extensions). Para la mayoría de contenido para móviles, la cabecera de tipo de contenido es similar a:

Content-Type: text/xhtml; charset=utf-8

El primer aspecto de la cabecera Content Type es el tipo MIME. Un tipo MIME es una designación multimedia incluida en la cabecera de la página web para indicar al navegador móvil cómo interpretar el código que está siendo enviado mediante las directrices devueltas en la petición de Content-Type. Los tipos de MIME también ayudan al navegador móvil a determinar cuándo un archivo debe ser lanzado en el navegador y cuándo éste debería ser lanzado como una aplicación o un programa independiente.

La designación de MIME siempre incluye un tipo principal y un subtipo, los cuales están separados por “/”; de este modo, el tipo MIME para una imagen podría ser image/GIF.  Los tipos fundamentales de MIME son: application, audio, image, message, model, multipart, text, y video.

La mayoría de los navegadores no están pre-configurados para soportar tipos MIME para móviles, sin embargo, esto está siendo cada vez más común. Si se está mostrando contenido para móviles, esta es una buena medida para revisar tus servidores y añadir manualmente los tipos de MIME para móviles que todavía no están presentes ni reconocidos por el servidor web.

En algunos casos, los dispositivos pueden aceptar múltiples tipos de archivo pero estos suelen tener preferencias, normalmente porque cada dispositivo interpreta y tiene mayor capacidad para ejecutar un tipo específico de archivo.

La segunda parte de la cabecera del tipo de contenido es el conjunto de caracteres. El conjunto de caracteres elegidos puede afectar al ancho de banda necesario para transmitir una página, debido a que algunos caracteres requieren más memoria que otros. Si una página es escrita principalmente con caracteres latinos y lenguajes cómo inglés, francés o alemán se debería usar el conjunto de caracteres UTF-8. Si un sitio web es escrito con caracteres no latinos y lenguas como chino, japonés o hebreo se debería utilizar el conjunto de caracteres UTF-16.

Content-Disposition

Esta cabecera permite especificar que un archivo no debería ser mostrado automáticamente, pero en cambio debería abrirse fuera del navegador móvil y mostrar una caja de dialogo para la descarga del archivo siempre que los tipos MIME requeridos sean aceptados. Esto es particularmente útil, cuando una página web permite a sus visitantes descargar aplicaciones, juegos, imágenes, politonos, fondos de pantalla y otros tipos de contenido similar.

 

Más información en el tutorial de SEO para móviles.