Иногда (когда ресурс запрашивается слишком часто) Я перехватываю презентацию (HTML) ресурса с помощью captcha. Перехват не вызывает перенаправления. Это происходит при одном и том же URI.
Теперь мне интересно, какой код статуса HTTP больше всего подходит для этих требований:
-
он должен соответствовать семантически.
-
Google должен понимать, что этот перехват является временным условием, которое не должно влиять на существующий ресурс в его индексе.
-
Веб-браузер отобразит тело ответа с помощью captcha.
Это мои кандидаты, которые я определил до сих пор:
409 Конфликт
Запрос не может быть выполнен из-за конфликта с текущим состоянием ресурса. Этот код разрешен только в ситуациях, когда ожидается, что пользователь сможет разрешить конфликт и повторно отправить запрос. Тело ответа СЛЕДУЕТ включать достаточную информацию, чтобы пользователь мог распознать источник конфликта.
Звучит прекрасно. Конфликтное состояние происходит от тех клиентов, которые слишком часто запрашивают ресурс. В ответе также содержится достаточно информации, чтобы идентифицировать источник конфликта и разрешить его.
503 Служба недоступна
В настоящее время сервер не может обработать запрос из-за временной перегрузки [...] сервера. Подразумевается, что это временное условие [...]. Если известно, длина задержки МОЖЕТ указываться в заголовке Retry-After.
Звучит умеренно. Я мог бы даже знать длину задержки и предоставить такой заголовок. Но я пропустил здесь то, что пользователь может решить проблему. Кроме того, область слишком широкая (перегруженный сервер и перегруженный ресурс).