Проверяет понимание механизма определения типа контента в HTTP-ответах браузером.
Когда браузер отправляет запрос на сервер, сервер в ответе указывает заголовок Content-Type. Этот заголовок содержит MIME-тип, который сообщает браузеру, как интерпретировать полученные данные. Например, для HTML-страницы используется text/html, а для JSON — application/json.
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.
Если заголовок Content-Type отсутствует или указан неверно, браузер может попытаться угадать тип контента, анализируя первые байты ответа. Это называется MIME sniffing. Однако это может привести к уязвимостям, например, если злоумышленник загрузит JavaScript под видом изображения. Для защиты используется заголовок X-Content-Type-Options: nosniff, который запрещает браузеру угадывать тип.
Правильная установка заголовка Content-Type критична для корректной обработки данных браузером. Всегда указывайте точный MIME-тип и используйте X-Content-Type-Options: nosniff для повышения безопасности.
Уровень
Рейтинг:
4
Сложность:
3
Навыки
HTML
Networks
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию