Проверяет понимание различий между классическими HTTP-запросами и Server-Sent Events для выбора подходящего способа доставки данных от сервера клиенту.
HTTP-запросы и Server-Sent Events решают разные задачи. Классический HTTP работает по модели «запрос-ответ»: клиент отправляет запрос, сервер возвращает ответ и соединение закрывается. Это удобно, когда данные нужны по требованию пользователя — загрузка страницы, отправка формы, получение списка товаров.
Пример SSE на клиенте:
const source = new EventSource('/events');
source.onmessage = (e) => {
console.log('Новое событие:', e.data);
};
source.onerror = () => source.close();
Пример сервера на Node.js:
app.get('/events', (req, res) => {
res.setHeader('Content-Type', 'text/event-stream');
res.setHeader('Cache-Control', 'no-cache');
setInterval(() => {
res.write(`data: ${Date.now()}\n\n`);
}, 1000);
});
SSE автоматически переподключается при обрыве, работает поверх обычного HTTP и не требует специального протокола. Однако он не подходит для двусторонней связи и имеет ограничения по количеству соединений в браузере.
Итог: используйте HTTP для запросов по требованию, а SSE — когда серверу нужно постоянно пушить обновления клиенту в одну сторону.
Уровень
Рейтинг:
4
Сложность:
5
Навыки
JavaScript
Networks
Ключевые слова
Подпишись на Node.js Developer в телеграм