Я бы сказал, что это в основном ошибки. Если вы всегда пишете идеальный HTML, то действительно не имеет значения, какую пару MIME + синтаксис вы выберете.
Когда страница может содержать ошибки, каждый синтаксис имеет альтернативные преимущества
Обычный синтаксис HTML (используется как text / html) означает использование синтаксического анализатора, который попытается максимально эффективно использовать ваши ошибки. Ваш контент будет отображаться каким-то образом, и во многих случаях, так, как вы хотели. Однако, когда это не так, отладка может быть затруднена из-за неожиданных исправлений, которые может сделать анализатор.
С синтаксисом XHTML (служащим application / xhtml + xml) верно обратное. Если вы допустите синтаксическую ошибку, парсер просто остановится. В браузере вы увидите либо сообщение об ошибке, либо просто содержимое до точки, где была обнаружена синтаксическая ошибка. Другие виды ошибок, тем не менее, легче отлаживать, потому что синтаксический анализатор XML не будет путаться с вашими элементами, пытающимися исправить ошибку.
В качестве примера предположим, что у вас есть
<style> td { font-weight:bold } </style>
<table>
<tr>
<td>
<span>First</span>
</td>
<span>Second</span>
</tr>
</table>
Это ошибка модели содержимого HTML, поскольку второй диапазон не находится в элементе td. Но это не синтаксическая ошибка XHTML (т. Е. Это правильно сформированный XML), поэтому анализатор XML на этом не остановится.
Если вы используете синтаксис HTML и тип MIME, в браузере вы увидите
Второй
Первый
потому что анализатор HTML полностью переместит второй диапазон из таблицы. В более сложных таблицах может быть трудно понять, как появился этот порядок.
Если вы используете синтаксис XHTML и тип MIME, в браузере вы увидите
Первый Второй
Если вы затем задаетесь вопросом, почему «Второй» не выделен жирным шрифтом, вы можете легче найти соответствующую разметку, поскольку все отображается в том порядке, в котором она размещена в разметке.