Вступить в клуб →
средняявопросHTTP-клиенты, серверы и gRPC

Сервис перестаёт отвечать, когда клиенты открывают соединения и медленно шлют заголовки

srv := &http.Server{
    Addr:    ":8080",
    Handler: router,
}
log.Fatal(srv.ListenAndServe())

Во время атаки тысячи клиентов открывают соединения и отправляют заголовки по байту в минуту. Сервис исчерпывает дескрипторы и перестаёт принимать обычные запросы. Что добавить?

  • Таймауты сервера: ReadHeaderTimeout, ReadTimeout, IdleTimeout
  • Увеличить GOMAXPROCS
  • Запускать каждый запрос в отдельной горутине
  • Перейти с HTTP/1.1 на HTTP/2 без других изменений

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела