Выбор ответа Middle HTTP: методы, статусы, заголовки обновлено
Редирект с сохранением метода POST
Вопрос
API переехал на новый адрес навсегда. Клиенты шлют туда POST с телом. Какой статус редиректа гарантирует, что браузер повторит именно POST с тем же телом?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: 308 Permanent Redirect. 308 (постоянный) и 307 (временный) запрещают менять метод и тело.
Варианты ответа
- 301 Moved Permanently
- 308 Permanent Redirectправильный ответ
- 302 Found
- 303 See Other
Разбор
308 (постоянный) и 307 (временный) запрещают менять метод и тело. С 301 и 302 браузеры исторически превращают POST в GET, поэтому тело потеряется. 303 вообще предписывает сделать GET: его используют после отправки формы, чтобы перейти на страницу результата.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Почему PATCH не всегда идемпотентен
Следующий вопрос
Безопасный метод и идемпотентный: разница