По порядку Middle net/http и middleware обновлено
Путь запроса через net/http
Вопрос
Расставьте этапы обработки входящего запроса в net/http по порядку.
Попробуйте сами
Расставьте шаги по порядку стрелками.
- 1Сервер запускает горутину для соединения
- 2Читаются и разбираются заголовки запроса
- 3Запрос проходит цепочку middleware
- 4ServeMux выбирает обработчик по методу и пути
- 5Обработчик пишет заголовки, статус и тело ответа
- 6Listener принимает TCP-соединение
Показать ответ и разбор
Коротко
Соединение принимается в цикле Serve, получает свою горутину, затем разбирается запрос (здесь работает ReadHeaderTimeout). Корневой Handler сервера это обычно цепочка middleware, внутри которой роутер находит конечный обработчик.
Правильный порядок
- 1Listener принимает TCP-соединение
- 2Сервер запускает горутину для соединения
- 3Читаются и разбираются заголовки запроса
- 4Запрос проходит цепочку middleware
- 5ServeMux выбирает обработчик по методу и пути
- 6Обработчик пишет заголовки, статус и тело ответа
Разбор
Соединение принимается в цикле Serve, получает свою горутину, затем разбирается запрос (здесь работает ReadHeaderTimeout). Корневой Handler сервера это обычно цепочка middleware, внутри которой роутер находит конечный обработчик.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Термины по теме
Ещё по теме «net/http и middleware»
- Статистика access-логов: ошибки и p95 на Go
- Разбор сырого HTTP/1.1 запроса на Go
- Разбор query-строки URL с декодированием на Go
- Маршрутизатор с параметрами пути в стиле ServeMux
- Rate limiter на токен-бакете для middleware на Go
- Зачем закрывать resp.Body
- Таймаут http.DefaultClient
- Обработчики net/http и горутины