HTTP redirect: сохранить смысл метода и проверить новое назначение
Увеличить схему
Фотография конкретного исполнения не приложена.
Разные 3xx не являются взаимозаменяемыми командами «повторить там же». RFC 9110 различает перенаправления с сохранением метода, изменение к получению другого ресурса и использование ранее сохранённого результата. Поэтому автоматическое следование Location должно соответствовать назначению клиента, особенно для запросов, меняющих состояние.
307 и 308 однозначно сохраняют метод. Для 301 и 302 допускается распространённое преобразование POST в GET, а 303 связан с отдельным получением результата. Если приложение ждёт передачу исходного содержимого новым запросом, выбранный код и поведение библиотеки нужно проверить явно, а не по конечному статусу 200.
Новое назначение также меняет границу передачи автоматически сформированных заголовков. Параметры авторизации, proxy и идентичность сервиса пересматривают по правилам клиента и новой цели. Полученный Location нельзя автоматически считать разрешением передать секреты произвольному адресу из цепочки.
В приёмке проверяют допустимые коды, метод и содержимое повторного запроса на согласованных тестовых endpoints. Сохраняют цепочку переходов и причины отказа. Успешное получение конечной страницы не подтверждает, что исходная операция сохранила требуемую семантику и обращалась только к предусмотренным назначениям.
Основание — Selected IETF HTTP RFCs, exact numbered editions and sections cited, разделы RFC9110 §15.4 Redirection; 301/302/303/307/308. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Реальные зоны, resolver и HTTP-клиенты не испытывались. Это проектные критерии; номера RFC обозначают документы, а не подтверждённую поддержку всех возможностей конкретным устройством.
Запросы отправляются на наш e-mail из вашей почтовой программы.