Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про HTML: Content-Type, MIME type, HTTP headers, browser parsing

Как браузер определяет тип полученного контента — HTML это или JSON?

Проверяет понимание механизма определения типа контента в HTTP-ответах браузером.

Короткий ответ

Браузер определяет тип контента по заголовку Content-Type в HTTP-ответе сервера. Этот заголовок содержит MIME-тип, например text/html для HTML или application/json для JSON. Если заголовок отсутствует или неверен, браузер может попытаться угадать тип (MIME sniffing), но это небезопасно и часто отключается заголовком X-Content-Type-Options: nosniff.

Длинный ответ

Как браузер определяет тип контента

Когда браузер отправляет запрос на сервер, сервер в ответе указывает заголовок Content-Type. Этот заголовок содержит MIME-тип, который сообщает браузеру, как интерпретировать полученные данные. Например, для HTML-страницы используется text/html, а для JSON — application/json.

Роль MIME-типов

MIME-типы (Multipurpose Internet Mail Extensions) — это стандартизированные строки, описывающие формат данных. Основные типы:

  • text/html — HTML-документ
  • application/json — JSON-данные
  • text/plain — обычный текст
  • application/octet-stream — бинарные данные

Пример работы

Рассмотрим простой пример на Node.js с использованием Express:

const express = require('express');
const app = express();

app.get('/data', (req, res) => {
  res.setHeader('Content-Type', 'application/json');
  res.json({ message: 'Hello' });
});

app.get('/page', (req, res) => {
  res.setHeader('Content-Type', 'text/html');
  res.send('<h1>Hello</h1>');
});

app.listen(3000);

В первом случае браузер получит JSON и, скорее всего, предложит скачать файл или отобразит его как текст (в зависимости от настроек). Во втором — отрендерит HTML.

MIME sniffing и безопасность

Если заголовок Content-Type отсутствует или указан неверно, браузер может попытаться угадать тип контента, анализируя первые байты ответа. Это называется MIME sniffing. Однако это может привести к уязвимостям, например, если злоумышленник загрузит JavaScript под видом изображения. Для защиты используется заголовок X-Content-Type-Options: nosniff, который запрещает браузеру угадывать тип.

Вывод

Правильная установка заголовка Content-Type критична для корректной обработки данных браузером. Всегда указывайте точный MIME-тип и используйте X-Content-Type-Options: nosniff для повышения безопасности.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    3

Навыки

  • HTML

    HTML

  • Networks

Ключевые слова

#Content-Type

#MIME type

#HTTP headers

#browser parsing

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию