Как браузеры решают, какой контент HTML - PullRequest
1 голос
/ 19 апреля 2011

Раньше я считал, что заголовок CONTENT-TYPE HTML-страницы сообщает браузеру, что содержимое HTML или нет.У меня есть прокси-код, где я проверял, что у типа содержимого есть text / html, чтобы решить, является ли его HTML или нет.

Это работает нормально, пока я не нашел URL:

http://www.movingcenter.com/mc.dll?page=home

Эти URL-адреса заголовков ответа:

Connection    close
Date  Tue, 19 Apr 2011 17:32:35 GMT
Server    Microsoft-IIS/6.0
X-Powered-By  ASP.NET

Как я могу эффективно решить, является ли страница HTML или нет.В этом случае я знаю, что это так.

Спасибо, Спарш Гупта

Ответы [ 2 ]

2 голосов
/ 19 апреля 2011

Любое сообщение HTTP / 1.1, содержащее тело объекта, ДОЛЖНО включать поле заголовка Content-Type, определяющее тип носителя этого тела.Если и только если тип мультимедиа не задан полем Content-Type, получатель МОЖЕТ попытаться угадать тип мультимедиа посредством проверки его содержимого и / или расширения имени URI, используемого для идентификации ресурса.Если тип носителя остается неизвестным, получатель ДОЛЖЕН рассматривать его как тип "application / octet-stream".

- http://www.w3.org/Protocols/rfc2616/rfc2616-sec7.html#sec7.2.1

Таким образом, вы можете проверить началотело сообщения и посмотрите, сможете ли вы найти в нем doctype или любые HTML-теги.

0 голосов
/ 19 апреля 2011

Браузеры должны использовать свойство Content-Type для определения типа MIME документа, и серверы всегда должны отправлять его.Однако ответ таков: это зависит от браузера.Например, в Internet Explorer есть набор правил («анализ содержимого») для определения типа содержимого. Это отличная сводная статья .Хотя я чувствую странное предположение, что вы делаете что-то вроде IE, вы можете использовать аналогичные методы для определения типа контента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...