В большинстве API стандартная реализация перенаправления выполняет 302, что действительно для определения GET. Что касается истории ваших вопросов, вы знакомы с ASP.NET, однако я также добавлю примеры для Java-сервлетов.
ASP.NET:
Response.Redirect("http://google.com");
Servlet:
response.sendRedirect("http://google.com");
Неявно устанавливает статус ответа на 302, а заголовок Location
- на указанный URL.
Когда текущий запрос является запросом POST и вы хотите перенаправить с помощью POST, вам потребуется перенаправление 307. Это не обеспечивается стандартным API, но обычно это просто вопрос установки соответствующего статуса ответа и заголовка.
ASP.NET:
Response.Status = "307 Temporary Redirect";
Response.AddHeader("Location", "http://google.com");
Servlet:
response.setStatus(307);
response.setHeader("Location", "http://google.com");
Обратите внимание, что это выдаст предупреждение о безопасности / подтверждении для среднего клиента, который запрашивает у конечного пользователя подтверждение отправки данных POST в другое место.