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

Код состояния HTTP для Captcha

Иногда (когда ресурс запрашивается слишком часто) Я перехватываю презентацию (HTML) ресурса с помощью captcha. Перехват не вызывает перенаправления. Это происходит при одном и том же URI.

Теперь мне интересно, какой код статуса HTTP больше всего подходит для этих требований:

  • он должен соответствовать семантически.

  • Google должен понимать, что этот перехват является временным условием, которое не должно влиять на существующий ресурс в его индексе.

  • Веб-браузер отобразит тело ответа с помощью captcha.

Это мои кандидаты, которые я определил до сих пор:

409 Конфликт

Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса. Этот код разрешен только в ситуациях, когда ожидается, что пользователь сможет разрешить конфликт и повторно отправить запрос. Тело ответа СЛЕДУЕТ включать достаточную информацию, чтобы пользователь мог распознать источник конфликта.

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

503 Служба недоступна

В настоящее время сервер не может обработать запрос из-за временной перегрузки [...] сервера. Подразумевается, что это временное условие [...]. Если известно, длина задержки МОЖЕТ указываться в заголовке Retry-After.

Звучит умеренно. Я мог бы даже знать длину задержки и предоставить такой заголовок. Но я пропустил здесь то, что пользователь может решить проблему. Кроме того, область слишком широкая (перегруженный сервер и перегруженный ресурс).

4b9b3361

Ответ 2

Для меня 422 несколько точен для этого случая:

Код состояния ответа указывает, что сервер понимает тип содержимого объекта запроса, и синтаксис объекта запроса является правильным, но он не смог обработать содержащиеся в нем инструкции.