Что является проблемами, связанными со служащими страницами с Содержанием: application/xhtml+xml

При запуске недавно, некоторые мои новые веб-страницы (XHTML 1.1) являются установкой, чтобы сделать regex заголовка запроса Accept и отправьте правильные заголовки ответа HTTP, если агент пользователя принимает XML (Firefox, и Safari делают).

IE (или любой другой браузер, который не принимает его) просто получит плоскость text/html тип контента.

Будет бот Google (или какой-либо другой поисковый бот) имеют какие-либо проблемы с этим? Там какие-либо отрицательные стороны к моему подходу, который я просмотрел? Вы думали бы, что этот сниффер заголовка будет иметь много эффекта на производительность?

16
задан alex 15 June 2011 в 23:03
поделиться

4 ответа

Я использую согласование содержания для переключения между application/xhtml+xml и text/html точно так же, как Вы описываете без того, чтобы замечать любые проблемы с поисковыми ботами. Строго, хотя, необходимо принять во внимание значения q в принять заголовке, который указывает на предпочтение агента пользователя к каждому типу контента. Если агент пользователя предпочитает принимать text/html, но примет application/xhtml+xml как альтернативу, то для самой большой безопасности необходимо служить страницей text/html.

5
ответ дан 30 November 2019 в 21:29
поделиться

Единственная настоящая проблема состоит в том, что браузеры отобразят ошибки анализа XML, если Ваша страница будет содержать недопустимый код, в то время как в тексте/HTML они, по крайней мере, отобразят что-то видимое.

нет действительно никакого преимущества отправки xml, если Вы не хотите встроить svg или делаете обработку XML страницы.

6
ответ дан 30 November 2019 в 21:29
поделиться

Одной проблемой с согласованием содержания (и с обслуживанием другого содержания/заголовков к различным агентам пользователя) являются прокси-серверы. Рассмотрение следующего; я столкнулся с этим назад в Netscape 4 дня и стеснялся стороны сервера, осуществляющей сниффинг с тех пор.

Пользователь загрузки Ваша страница с Firefox, и получает Тип контента XHTML/XML. ISP пользователя имеет прокси-сервер между пользователем и Вашим сайтом, таким образом, эта страница теперь кэшируется.

Пользователь B, тот же ISP, запрашивает Вашу страницу с помощью Internet Explorer. Запрос поражает прокси сначала, прокси говорит "эй, у меня есть та страница, здесь это; как application/xhtml+xml". Пользователю B предлагают загрузить файл (поскольку IE загрузит что-либо отправленное как application/xhtml+xml.

можно двигаться, эта конкретная проблема при помощи эти Варьируются Заголовок , как описано на этой Береа Street, 456, статья. Я также предполагаю, что прокси-серверы стали немного более умными об автоматическом обнаружении этих вещей.

Вот то, где CF, который является HTML/XHTML, начинает закрадываться. При использовании согласования содержания для обслуживания application/xhtml+xml одному набору агентов пользователя и текста/HTML к другому набору агентов пользователя, Вы полагаетесь на все прокси между своим сервером и своими пользователями, чтобы быть хорошего поведения.

, Даже если все прокси-серверы в мире были достаточно умны для распознавания Варьироваться заголовка (они не) все еще необходимо спорить с компьютерными швейцарами мира. Существует много умных, талантливых, и выделенных специалистов по ИТ в мире. Существует больше не так умные люди, которые проводят их дни, дважды щелкая по приложениям установщика и думая, что "Интернет" то, что синий E в их меню. Неправильно сконфигурированный прокси мог все еще неправильно страницы кэша и заголовки, оставляя Вас не повезло.

12
ответ дан 30 November 2019 в 21:29
поделиться

Проблема состоит в том, что необходимо ограничить разметку подмножеством и HTML и XHTML.

  • Вы не можете использовать функции XHTML (пространства имен, закрывающийся автоматически синтаксис на всех элементах), потому что они прервут HTML (например, <script/> открыт к text/html синтаксический анализатор и уничтожит документ до следующего </script>).
  • Вы не можете использовать сериализатор XML, потому что он мог повредиться text/html режим (может использовать XML-только функции, упомянутые в предыдущей точке, могут добавить tagname префиксы (PHP DOM иногда делает <default:h1>). <script> CDATA в HTML, но сериализатор XML может произвести <script>if (a &amp;&amp; b)</script>).
  • Вы не можете использовать компактный синтаксис HTML (подразумеваемые теги, дополнительные кавычки), потому что он не проанализирует как XML.
  • Это опасно для использования инструментов HTML использования (включая большинство движков шаблонов), потому что они не заботятся об отмеченности (сингл, незавершенный & в href, или <br> полностью повредит XML и заставит сайт появиться к [1 112] работа только в IE! )

я протестировал индексацию своего XML-единственного веб-сайта. Это было индексировано даже при том, что я использовал application/xml тип MIME, но это, казалось, было проанализировано как HTML так или иначе (Google не индексировал текст, который был в [1 111] разделы).

2
ответ дан 30 November 2019 в 21:29
поделиться