Проектная лаборатория

Собственный HTTP-сервер

0 / 14этапов пройдено

Этап 02 · Основные этапы

Ответ с кодом 200

Русский перевод заданий CodeCrafters. Примеры подготовлены для Go. Выбор языка меняет команды и результаты, но не текст задания.

На этом этапе сервер будет возвращать ответ 200 на HTTP-запрос.

HTTP-ответ

HTTP-ответ состоит из трёх частей, разделённых CRLF (\r\n):

  1. Строка состояния.
  2. Ноль или более заголовков, каждый из которых заканчивается CRLF.
  3. Необязательное тело ответа.

На этом этапе ответ сервера будет содержать только строку состояния. Сервер должен отправить следующий ответ:

HTTP/1.1 200 OK\r\n\r\n

Разберём ответ по частям:

// Status line
HTTP/1.1  // HTTP version
200       // Status code
OK        // Optional reason phrase
\r\n      // CRLF that marks the end of the status line
 
// Headers (empty)
\r\n      // CRLF that marks the end of the headers
 
// Response body (empty)

Дополнительные сведения об HTTP-ответах приведены в MDN Web Docs и спецификации HTTP/1.1.

Тесты

Тестирующая система запустит вашу программу следующим образом:

$ ./your_program.sh

Затем она отправит серверу HTTP-запрос GET:

$ curl -v http://localhost:4221

Сервер должен вернуть следующий ответ:

HTTP/1.1 200 OK\r\n\r\n

Примечания

  • Содержимое запроса можно игнорировать. Разбор запросов мы рассмотрим на следующих этапах.
  • В этом задании используется HTTP/1.1.
  • Чтобы изучить устройство HTTP, вы реализуете сервер с нуля, используя примитивы TCP и не полагаясь на встроенные или сторонние HTTP-библиотеки.

Проверка в вашей IDE

Нужны Node.js, Git, Go 1.24+ для тестеров и инструменты выбранного языка. Тестеры загружаются и запускаются локально; отдельным проектам нужны дополнительные системные зависимости.

Настройка проекта и IDE

1. Создайте проект один раз

node '/opt/graphlms/tools/project-lab/cli.mjs' init http-server ./my-http-server --language go

2. Откройте папку в IDE

cd ./my-http-server

Реализуйте требования этапа в созданном проекте.

Запустите из папки проекта

node '/opt/graphlms/tools/project-lab/cli.mjs' submit --stage ia4

Запускайте submit из папки проекта. Это локальные проверки, а не сертификаты или результаты аккаунта CodeCrafters.

Результат проверки

go / ЛОКАЛЬНО

Подключение к локальной проверке…

Здесь появится результат

Запустите submit в терминале. Страница обновляет результаты каждые 8 секунд.

GraphLMS — инженерная лаборатория роста