Подтвердить что ты не робот

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

Я прочитал Какой код ответа HTTP-статуса я должен использовать, если в запросе отсутствует требуемый параметр?, но он специально не спрашивал о заголовках, и не казалось чтобы быть консенсусом.

Контекст этого вопроса предполагает успешную аутентификацию. В настоящее время я предпочитаю либо 400 (хотя это не так, потому что на самом деле это не случай "неправильного синтаксиса" ) или 403. Учитывая описание 403:

Сервер понял запрос, но отказывается его выполнять. Авторизация не поможет, и запрос НЕ ДОЛЖЕН повториться. Если метод запроса не был HEAD, и сервер хочет обнародовать почему запрос не был выполнен, СЛЕДУЕТ описать причину для отказа в сущности.

Это имеет для меня наибольшее значение.

Может кто-нибудь, пожалуйста, просветит меня? Спасибо.

4b9b3361

Ответ 1

400 Bad Request

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

10.4.1 400 Плохой запрос. Запрос не мог быть понят сервером из-за искаженного синтаксиса. Клиент НЕ ДОЛЖЕН повторять запрос без изменений.

Edit

Как отмечает Марк Рид в комментариях, 403 говорит: "Нет ничего плохого в том, что вы мне прислали. У вас есть правильная авторизация, и синтаксис действителен. Я просто не хочу делать то, что вы просите".

Часть, выделенная жирным шрифтом, просто говорит: если сервер так выбирает, он может точно сказать клиенту, почему он не хочет выполнять запрос.