Кратко
- HTTP 431 отделяет слишком большие поля запроса от слишком большого содержимого, но HTTP не устанавливает один предел для всех реализаций и путей.
- Отказ может относиться ко всему набору или одному полю; сокращение допускает повтор, однако слепое удаление контекста способно изменить полномочия, условия или назначение.
Отказ до содержимого
Небольшая операция приходит на шлюз. Содержимое мало или отсутствует, но запрос накопил длинный cookie, данные доступа, предпочтения, трассировку и контекст пересылки. Каждый элемент выглядит разумно, а сумма превышает бюджет выбранного получателя.
RFC 6585 в 2012 году назвал это состояние 431 Request Header Fields Too Large. Сервер не желает обрабатывать запрос из-за размера его полей. Клиент может уменьшить их и представить запрос снова.
Это не содержимое, для которого RFC 9110 определяет 413. Поля образуют управляющий конверт с правилами интерпретации, полномочиями, условиями и маршрутом. Поэтому запрос бывает велик ещё до начала тела.
Общий ответ без общего предела
RFC 9110 не задаёт заранее максимум для строки, значения или всего раздела полей. Но память и время разбора конечны, поэтому каждая реализация выбирает собственный бюджет.
В одной цепочке действуют разные ограничения. Клиентская библиотека строит запрос, локальный прокси принимает, пограничный шлюз отклоняет; по другому пути данные могли бы достичь сервера с иным пределом. Одни байты успешно проходят здесь и не проходят там, потому что универсального числа HTTP нет.
431 даёт частным решениям общий язык. Сам код не доказывает, какой узел установил наименьший предел, и не доказывает, что его повышение безопасно.
Одно поле и общий размер — разные диагнозы
RFC 6585 допускает отказ из-за всего набора либо из-за одного поля. Во втором случае представлению ответа следует назвать это поле.
Одиночное поле иногда можно сократить или обновить. Общий избыток может сложиться из множества независимых добавлений. Удаление самого большого не гарантирует прохождение следующего узла. Имя — подсказка, а не доказательство сквозной совместимости.
Ответственность тоже распределяется. Cookie собирает состояние из прежних ответов, посредники удлиняют поля пересылки, ротация меняет данные доступа, трассировка добавляет контекст за пределами приложения.
Молчаливое отбрасывание меняет запрос
RFC 9110 требует подходящий 4xx, если поля больше того, что сервер готов обработать. Игнорирование увеличивает риск расхождения интерпретаций и контрабанды запросов.
Поля переносят полномочия, предусловия, адресацию и правила чтения. Если один узел игнорирует то, что применяет другой, они исполняют уже не один запрос. Обрезка может сделать условное изменение безусловным, убрать авторизацию или разделить понимание границ сообщения.
Сервер обязан получить весь раздел до применения метода: в конце могут находиться условия, данные доступа или обманчивые дубликаты. Безопасная ветвь — явный отказ, затем реконструкция владельцем смысла.
Повтор разрешён, но успех не обещан
После сокращения разрешена новая попытка, однако следующий посредник может иметь меньший предел, удалённое поле может быть обязательным, а операция — устареть. При неопределённости транспорта клиент также может не знать, сработала ли прежняя попытка.
Надёжный повтор строится из авторитетного состояния, сохраняет нужные полномочия и условия, использует механизм идемпотентности, если он есть, и проверяет актуальность действия. Быстрое повторение повреждённого запроса не возвращает ему смысл.
Кэш не наследует локальный бюджет
RFC 6585 запрещает хранить ответы 431. Решение связано с конкретным разделом, путём и текущим бюджетом. Позднее воспроизведение может отклонить уже уменьшенный запрос или превратить старую настройку одного узла в правило другого маршрута.
Получатель вправе создать новый 431 из текущего состояния. Кэш не может сделать прежнее решение повторно используемым содержимым.
Под атакой объяснение тоже расходует ресурс
Сервер не обязан всегда выдавать 431. RFC 6585 допускает, что под атакой лучше сбросить соединение или принять иные меры. Чтение и разбор ради диагноза потребляют защищаемые память и вычисления, а точные пороги могут помочь разведке.
При запасе ресурсов ограниченное объяснение помогает добросовестному клиенту. Под враждебной нагрузкой важнее раннее сдерживание. Но закрытие соединения само по себе не доказывает размер полей; внутренняя наблюдаемость должна различать причины.
Узкая истина кода 431
431 не называет большим содержимое, не подтверждает превышение общего предела Интернета и не доказывает злой умысел. Он сообщает лишь, что получатель отверг управляющий конверт, который не хотел обрабатывать.
Эта точность сделала скрытую границу исправимой, не унифицируя бюджет. Постоянная дисциплина — ограничивать контекст, назначать владельца и сохранять возможность реконструкции, не выбрасывая условие безопасности ради размера.
Источники
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
