Карточка Middle net/http и middleware обновлено

Ограничение размера тела запроса

Вопрос

Как ограничить размер тела входящего запроса в net/http?

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

Ответьте про себя или вслух, потом откройте ответ и сверьтесь.

Показать ответ и разбор

Коротко

r.Body = http.MaxBytesReader(w, r.Body, 1<<20): чтение сверх лимита вернёт ошибку http.MaxBytesError, а сервер закроет соединение.

Ответ

r.Body = http.MaxBytesReader(w, r.Body, 1<<20): чтение сверх лимита вернёт ошибку *http.MaxBytesError, а сервер закроет соединение.

Разбор

Без ограничения io.ReadAll(r.Body) или JSON-декодер можно заставить читать гигабайты.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме