¿Qué es la negociación de contenido?
La negociación de contenido es una técnica descrita en la especificación del protocolo de transferencia de hipertexto (HTTP) que permite que un cliente remoto realice una solicitud más específica de un servidor web. El método le da al servidor la capacidad de alojar múltiples tipos de archivos, documentos en diferentes idiomas y más, cada uno con diferentes niveles de calidad. Estas selecciones separadas se alojan como una referencia única, denotada por su identificador uniforme de recursos (URI), y están destinadas a proporcionar más contenido aplicable cuando está disponible en el servidor.
Cuando un localizador uniforme de recursos (URL) es una referencia a un archivo en una ubicación específica, como dentro de una carpeta en el servidor, un URI puede hacer referencia a cualquier cosa, prácticamente en cualquier lugar. Los detalles del URI, como la ubicación del archivo a entregar, el nombre del archivo y su tipo, se resuelven después de negociar el contenido. Esto permite que las diversas piezas de contenido se ubiquen en diferentes ubicaciones, como todos los archivos de un idioma determinado organizados en la carpeta de ese idioma en el servidor.
La idea detrás de la negociación de contenido es que el servidor web entregue el mejor contenido posible para cualquier agente de usuario o navegador web. Puede entregar ciertos tipos de archivos de imágenes u otro contenido a clientes que sean capaces de admitirlos. Esto es útil cuando se alojan múltiples versiones de un archivo para admitir múltiples plataformas de navegación, como dispositivos móviles.
Para hacer todo esto, el HTTP describe dos métodos de negociación de contenido, así como sugiere la capacidad de combinar los dos. Un método es la negociación impulsada por el servidor. Con este método, el servidor toma la mejor decisión posible sobre qué entregar, según la lógica que se le dé y qué contenido está disponible. .
Sin embargo, existen algunas dificultades con la negociación de contenido dirigida por el servidor. El servidor no sabe cómo responder a cada solicitud posible, por lo que tiene que hacer conjeturas basadas en la lógica que se le dio para tomar esas decisiones. No puede saber si el navegador web se ejecuta en un dispositivo móvil o si el documento solicitado está destinado a ser enviado directamente a una impresora a menos que se indique. También hay problemas de privacidad, ya que el método controlado por el servidor espera que la solicitud le envíe información sobre el usuario que realiza la solicitud.
El segundo método se conoce como negociación de contenido dirigida por el agente. Aquí, el usuario realiza una solicitud al servidor, y el servidor envía una lista de alternativas disponibles, si existen. La selección se realiza automáticamente, en función de las preferencias de navegador o plataforma disponibles, o manualmente en forma de opciones presentadas en el HTML. El principal inconveniente de la opción dirigida por el agente son las múltiples solicitudes al servidor para obtener el mejor contenido posible. Sin embargo, cuando un servidor proxy almacena en caché las solicitudes a un servidor que está utilizando una negociación controlada por el agente, podrá entregar el contenido apropiado a cualquier usuario detrás del proxy a través de una sola solicitud a la caché.