Перейти к содержанию

Создаём простой веб-сервер

Начало урока

Создаём простой веб-сервер

Отдаём настоящие страницы по HTTP с помощью встроенного модуля http

Главная идея: Веб-сервер — это программа, которая ждёт запросы и отправляет ответы. На Node.js его можно написать всего в несколько строк — ничего доустанавливать не нужно, ведь модуль http уже входит в Node.
К концу урока ты сможешь:
  • создать сервер с помощью http.createServer и заставить его слушать порт через listen,
  • читать входящий запрос (req.url, req.method),
  • отправлять обычный текст или HTML с правильным Content-Type,
  • всегда завершать ответ с помощью res.end().

1. Что такое веб-сервер? (аналогия)

Представь ресторан. Ты (клиент, обычно веб-браузер) заходишь и просишь что-то: «Дайте, пожалуйста, главную страницу». Официант (сервер) принимает заказ, идёт на кухню и приносит тарелку. Твой заказ — это запрос; тарелка — это ответ.

Веб-сервер делает ровно это, снова и снова, очень быстро. Он слушает запросы, приходящие на порт (как пронумерованная дверь — мы возьмём дверь номер 3000), и на каждый запрос отправляет ответ: текст, HTML-страницу, картинку и так далее.

Node.js отлично для этого подходит, потому что умеет обрабатывать много запросов, не застревая в ожидании, а инструменты для сервера уже встроены.

2. Цикл «запрос-ответ»

Клиент (browser) Сервер (Node.js) Запрос -> GET / <- Ответ 200 OK + HTML
undefined

Каждый раз, когда ты открываешь веб-страницу, происходит этот танец из двух шагов:

  1. Браузер отправляет запрос (например: GET страницы по адресу /).
  2. Сервер читает запрос и отправляет ответ (например: 200 OK, вот HTML).

Продолжите этот урок на YourAIZone

В полном уроке — объяснение целиком, разобранные примеры, частые ошибки, тесты с мгновенной проверкой и ИИ-репетитор. Начните сразу как гость или создайте аккаунт, чтобы сохранять прогресс.

В полном уроке

  • Объяснение целиком
  • Разобранные примеры
  • Частые ошибки и как их избежать
  • Тестовые вопросы: 15
  • ИИ-репетитор, который отвечает на вопросы по теме
  • Отслеживание прогресса для ученика, родителей и учителя