Source: https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html
You can add a rule to an ALB listener to redirect requests to a particular page when specified conditions are met. The available status codes are 301 and 302. As their names indicate, 301 Moved Permanently and 302 Found represent a permanent move and a temporary move to another URL, respectively.
The behavior of 301 and 302 redirects introduces a caveat.
A client may change a POST request to GET when following one of these redirects.
If a POST request receives a 301 or 302 response and the client follows it as GET, the original POST body is not forwarded as a POST request. The behavior depends on the client and its redirect settings; a method change is not mandatory for every client.
If you want the HTTP request method to remain unchanged, you need to use 307 or 308. However, an ALB listener redirect action offers only 301 and 302.
When I contacted AWS, I was told that the lack of ALB support for 307 and 308 was intentional. The original discussion referred to the older
RFC 2616 document, shown below:

“For a response to a method other than GET or HEAD, a 301 redirect should not be followed automatically without user confirmation, because it could change the conditions under which the request was issued.”
When method preservation is required, handle the redirect in a component that can return 307 or 308, such as the target application, rather than an ALB listener redirect action.
Current standards note: RFC 9110 permits a user agent to change POST to GET for 301 and 302. The older quotation above is historical context, not the current rule. Check the actual client behavior before relying on a redirect to preserve a request method or body.
