Имеет ли смысл ответ «HTTP / 1.1» для возврата кода состояния HTTP «421 Misdirected Request»? - PullRequest
0 голосов
/ 01 декабря 2018

В настоящее время я отлаживаю удивительный ответ «Плохой запрос» от API.

Запрос:

POST /path HTTP/1.1
...

Ответ:

HTTP/1.1 421 Misdirected Request
Date: Fri, 30 Nov 2018 21:59:12 GMT
...
Via: https/1.1 subdomain.example.org (ApacheTrafficServer/7.1.4)
...

Согласно моему исследованию,Код состояния HTTP 421 был добавлен только со спецификацией http / 2 .Как видите, мой клиент отправляет запрос HTTP1.1.

Имеет ли смысл использовать его в ответ на запрос HTTPS / 1.1?Что бы это могло значить там?


Обновление : Дальнейшие исследования показывают, что этот ответ 421 инициируется неверным токеном CSRF и значением Cookie в заголовке, повторяя запрос с проверяемымдопустимая комбинация возвращает ожидаемый результат с 200 OK.К сожалению, это ничего не объясняет.

1 Ответ

0 голосов
/ 01 декабря 2018

421 был добавлен для HTTP / 2, что позволило повторно использовать соединение.Если клиент повторно использовал соединение неправильно (, как Firefox использовал для ), сервер должен ответить следующим образом.

Однако это не означает, что это код состояния только для HTTP / 2.Например, если балансировщик нагрузки принимает запросы HTTP / 2 и передает их на внутренние серверы через HTTP / 1.1, то один из этих внутренних серверов может отклонить запрос через HTTP / 1.1, если он считает, что этот запрос был неверно отправлен.Как вы можете видеть, ваш запрос был отправлен через сервер трафика Apache, поэтому я подозреваю, что именно здесь и произошло.

...