Вебсправочник
Основы веб-разработки

X-Content-Type-Options: почему nosniff требует правильного MIME-типа

Заголовок X-Content-Type-Options со значением nosniff ограничивает угадывание типа содержимого браузером. Правильный Content-Type при этом остаётся обязанностью сервера.

Назначение

Заголовок X-Content-Type-Options со значением nosniff ограничивает угадывание типа содержимого браузером. Правильный Content-Type при этом остаётся обязанностью сервера.

Как это работает

Для загрузки таблицы стилей браузер ожидает text/css. Если вместо CSS сервер вернул HTML-страницу, nosniff помогает заблокировать неверный ресурс. Сам заголовок не проверяет качество кода и не превращает HTML в CSS.

Пример

HTTP/1.1 200 OK
Content-Type: text/css; charset=utf-8
X-Content-Type-Options: nosniff

body { color: #20352a; }

Что должно получиться

Это схематичный ответ для файла стилей. При корректном адресе и отсутствии других блокировок браузер может применить CSS. Заголовки устанавливаются сервером; их не вставляют в начало файла style.css.

Граница применения и частая ошибка

Ошибка MIME-типа часто вызвана неправильным URL или маршрутизацией, которая отдаёт страницу ошибки со статусом 200. Не лечите её удалением nosniff: сначала проверьте статус, Content-Type и первые строки тела ответа.

Самостоятельная проверка

В своём тестовом проекте откройте CSS-запрос в Network и сопоставьте Headers с Response. Затем намеренно испортите путь в link. Объясните, почему доступность ответа с кодом 200 сама по себе не подтверждает загрузку стилей.

Самостоятельный учебный материал. Техническая документация: первоисточник по теме ↗. Если результат отличается, проверьте код и версию браузера.