Рейтинг:0

Должен ли балансировщик нагрузки HTTP перенаправлять неверные запросы на серверную часть?

флаг in

Если HTTP-клиент отправляет запрос GET с телом, которое сгенерирует ответ 400 Bad Request, должен ли балансировщик нагрузки перенаправить этот запрос на серверную часть или немедленно обработать его? Есть ли какое-либо преимущество в том, чтобы НЕ иметь дело с этим на уровне балансировки нагрузки?

Недавно команда приложения пожаловалась, что балансировщик нагрузки возвращает 400 Bad Request, тогда как само приложение возвращает 405 Method Not Allowed.Казалось, что балансировщик нагрузки был прав, а у команды приложения возникло недопонимание, но это заставило меня задуматься, когда балансировщик нагрузки должен быть более снисходительным и в любом случае пересылать дерьмо бэкэндам.

Рейтинг:1
флаг cn

Почему не оба? HTTP-запрос может быть неправильно сформирован, а глагол не поддерживается в этом контексте. 400 легче проверить с помощью парсера, поэтому балансировщик нагрузки может отклонить несоответствующие заголовки, не зная, что на самом деле означает запрос.

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

haproxy, например, считает, что их опция accept-invalid-http-request и опция accept-invalid-http-response следует оставить отключенным. То есть соответствует стандартам. Конечно, несмотря на то, что haproxy настраивается, его можно настроить в расслабленном режиме для работы со сломанными вещами.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.