Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗goSpHsInr 241 of 280 menu
◀ ▶

Введение в HTTP-сервер в Go

Сервер в смысле HTTP это сторона, которая слушает порт, принимает запрос и пишет ответ в том же соединении. Клиент уже знаком: он сам открывает обращение к адресу и читает ответ. Здесь роли меняются: программа ждет входящие обращения и решает, что вернуть по пути и методу.

Запрос несет путь, метод, заголовки и иногда тело. Ответ собирают в объект, куда пишут байты и служебные поля. Типичный учебный адрес это локальный хост с портом, чтобы проверять сервер с той же машины, где он запущен.

В Go за прием соединений и разбор запросов отвечает пакет net/http из стандартной поставки. Тот же пакет уже служил клиенту: там читали чужой ответ, здесь регистрируют функции под пути и запускают прослушивание. Формат JSON и контекст с отменой тоже уже пройдены и пригодятся для тела и аккуратной остановки.

В этом разделе пройдем регистрацию маршрута, именованный кусок пути в шаблоне, параметры после знака вопроса, чтение тела при отправке, ответ текстом JSON и остановку без обрыва уже идущих ответов. Файлы и первые предложения: route/ru.html (маршрут связывает путь с функцией, которая пишет текст ответа), path/ru.html (кусок пути берут по имени из шаблона маршрута), params/ru.html (параметры после знака вопроса читают по имени), post/ru.html (тело запроса читают, когда метод отправки не пустой просмотр), json-response/ru.html (ответ можно собрать структурой и отдать с нужным заголовком типа), shutdown/ru.html (сервер останавливают через контекст, не обрывая уже идущие ответы), practice/ru.html (в этих задачах потренируем маршрут, кусок пути и ответ).

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить