Menu
Coddy logo textTech

Формирование ответа

Урок 24 из 47 курса Сетевое взаимодействие в терминале на Coddy.

Вы прочитали множество ответов. Теперь напишите один.

nc -l прослушивает порт, и всё, что вы подаёте на его вход, отправляется первому подключившемуся клиенту. Так вы становитесь сервером, причём веб-сервер вообще не используется:

printf 'HTTP/1.1 200 OK\r\nContent-Type: text/plain\r\n\r\nhand written' | nc -l -p 9114 &

Посмотрите, что это такое: строка состояния, один заголовок, пустая строка, затем тело. Именно такая структура, которую вы читали, набранная вручную.

Теперь это примет всё, что говорит по протоколу HTTP. Направьте curl на этот порт, и он сообщит о совершенно обычном ответе 200 с телом text/plain, потому что именно это и делает любой веб-сервер: записывает текст в такой структуре.

Этот приём действительно полезен в работе. Когда вам нужно увидеть, что именно отправляет вам какая-либо программа, поставьте на её пути nc -l и прочитайте создаваемый ею запрос.

challenge icon

Задание

Эксперт

Стань сервером вручную.

Используя nc -l на порту 9114, отдай ответ со строкой статуса HTTP/1.1 200 OK, заголовком Content-Type: text/plain и телом, в точности равным hand written. Затем получи его с помощью curl и выведи тело.

Ожидаемый вывод:

hand written

Используй printf с окончаниями строк \r\n и не забудь о пустой строке перед телом.

Попробуйте сами

Терминал
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Сетевое взаимодействие в терминале

Потренируйтесь самостоятельно: Песочница Terminal