Как стать автором
Обновить

Перестаньте вынюхивать, что у меня за браузер

Время на прочтение2 мин
Количество просмотров885
С завидной периодичностью в блоге разработчиков браузера Опера появляются сообщения, что Опера не может распарсить ту или иную страницу и пользователь видит примерно такую ошибку:



Эффект можно посмотреть по любой из этих ссылок. При этом, в других популярных браузерах страницы отображаются нормально, так же как и в Опере, если попросить распарсить документ как HTML, а не как XML (ссылка «Reparse document as HTML»).

В какой-то момент мне стало интересно, почему так происходит. Вариантов не много, либо Опера не может распарсить XML, который могут распарсить другие браузеры, либо другие браузеры и не пытаются парсить страниц как XML, а считают, что это HTML. Долго искать причину не пришлось, дело оказалось в ответе сервера:
Ответ Опере

Ответ Фаерфоксу

Получается, сервер просто «врет» некоторым браузерам. При этом точно можно сказать, что принимает решение он только лишь на основе строки User-Agent. Если, например, в Опере поставить в свойствах сайта Browser identification как Интернет Эксплорер, или Фаерфокс, страницы начинают чудесным образом открываться. Верно и обратное, если в Сафари задать юзерагент как «Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU)», то ему тоже будет выдаваться контент якобы application/xhtml+xml, и он тоже не сможет его распарсить:



Получается, что страдает не только Опера, а любой другой браузер, не опознанный как «свой».

Все осмотренные сайты с этой ошибкой объединяет одна вещь — они написаны на ASP.NET 2.0. Мне не известно, является ли это ошибкой команды Microsoft, или это дело рук доморощенных администраторов таких сайтов (всеже, не абсолютно все сайты, написанные на ASP.NET 2.0 страдают такой фигней). Хочу лишь дать совет разработчикам, который я написал в заголовке.

А пользователям можно посоветовать только менять юзерагент для таких сайтов. В той же Опере это можно сделать на вкладке Network в свойствах сломанного сайта.
Теги:
Хабы:
Всего голосов 195: ↑156 и ↓39+117
Комментарии103

Публикации

Истории

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань