Un problema con la negociación de contenido (y con la presentación de diferentes contenidos/encabezados para diferentes agentes de usuario) son los servidores proxy. Considerando lo siguiente; Me encontré con esto en los 4 días de Netscape y desde entonces no me gustó nada.
Usuario A descarga su página con Firefox y obtiene un tipo de contenido XHTML/XML. El ISP del usuario tiene un servidor proxy entre el usuario y su sitio, por lo que esta página ahora está en caché.
Usuario B, mismo ISP, solicita su página utilizando Internet Explorer. La solicitud golpea primero al proxy, el proxy dice "hey, tengo esa página, aquí está; como application/xhtml + xml". El usuario B se le pide que descargue el archivo (como IE descargará nada enviados como application/xhtml + xml.
Usted puede conseguir alrededor de este tema en particular mediante el uso de la Vary Header, tal como se describe en este 456 Berea Street artículo. También asumen ese proxy los servidores se han vuelto un poco más inteligentes sobre la detección automática de estas cosas.
Aquí es donde empieza a aparecer CF that is HTML/XHTML. Cuando utiliza la negociación de contenido para servir application/xhtml + xml a un conjunto de user-agents, y text/html a otro conjunto de agentes de usuario, confía en que todos los proxies entre su servidor y sus usuarios se comporten bien.
Par si todos los servidores proxy en el mundo fueran lo suficientemente inteligentes como para reconocer el encabezado Vary (no lo son), todavía tiene que contender con los conserjes de computadora del mundo. Hay muchos profesionales de TI inteligentes, talentosos y dedicados en el mundo. Hay más personas no tan inteligentes que se pasan el día haciendo doble clic en las aplicaciones del instalador y pensando que "Internet" es esa E azul en su menú. Un proxy mal configurado aún podría cachear indebidamente páginas y encabezados, dejándolo sin suerte.
Uno podría preguntarse, si está tomando la decisión (afortunadamente) consciente de servir sus páginas web como XHTML, ¿por qué no * también * hace el esfuerzo de asegurarse de que sus páginas web sean XHTML-válidas? (El uso de editores y validadores XML/XHTML son herramientas valiosas para lograr esto.) – DavidRR