Одна проблема с согласованием содержимого (и с предоставлением разного содержимого / заголовков разным агентам пользователя) - это прокси-серверы. Учитывая следующее; Я столкнулся с этим в Netscape 4 дня и с тех пор стеснялся нюхать серверную часть.
Пользователь A загружает вашу страницу с помощью Firefox и получает XHTML / XML Content-Type. У провайдера пользователя есть прокси-сервер между пользователем и вашим сайтом, поэтому эта страница теперь кэшируется.
Пользователь B, тот же ISP, запрашивает вашу страницу с помощью Internet Explorer. Сначала запрос обращается к прокси-серверу, прокси-сервер говорит: «Эй, у меня есть эта страница, вот она; как application / xhtml + xml ». Пользователю B предлагается загрузить файл (поскольку IE будет загружать все, что отправлено как application / xhtml + xml.
Вы можете обойти эту конкретную проблему, используя Vary Header , как описано в этой статье 456 Berea Street . Я также предполагаю, что прокси-серверы стали более умными в автоматическом обнаружении этих вещей.
Вот где CF, который является HTML / XHTML , начинает закрадываться. Когда вы используете согласование контента для подачи application / xhtml + xml одному набору пользовательских агентов и text / html к другому набору из пользовательских агентов, вы полагаетесь на все прокси между вашим сервером и вашими пользователями, чтобы вести себя хорошо.
Даже если все прокси-серверы в мире были достаточно умны, чтобы распознавать заголовок Vary (а они нет), вам все равно придется бороться с компьютерными уборщиками мира. В мире много умных, талантливых и преданных ИТ-специалистов. Есть еще не очень умные люди, которые проводят дни, дважды щелкая мышью на установочных приложениях и думая, что «Интернет» - это синяя буква «E» в их меню. Неправильно настроенный прокси-сервер может по-прежнему неправильно кэшировать страницы и заголовки, оставляя вас без удачи.