Выбор ответа Senior net/http и middleware обновлено

Таймауты http.Server и slowloris

Вопрос

Какой таймаут сервера прежде всего защищает от клиентов, которые бесконечно медленно присылают заголовки?

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

Выберите вариант, и откроется разбор.

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

Коротко

Правильный ответ: ReadHeaderTimeout. Атака slowloris держит тысячи соединений, присылая заголовки по байту.

Варианты ответа

  1. WriteTimeout
  2. IdleTimeout
  3. http.Client.Timeout
  4. ReadHeaderTimeoutправильный ответ

Разбор

Атака slowloris держит тысячи соединений, присылая заголовки по байту. ReadHeaderTimeout ограничивает время чтения заголовков (ReadTimeout ограничивает и тело, но мешает медленной загрузке файлов). WriteTimeout ограничивает запись ответа, IdleTimeout время простоя keep-alive между запросами, а клиентский таймаут к серверу не относится. http.ListenAndServe без своего Server не ставит ни одного таймаута, поэтому линтеры (gosec) на него ругаются.

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

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

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