The main difference between the 301 and 308 redirects is that when a 308 redirect code is specified, the client must repeat the exact same request (POST or GET) on the target location.
For 301 redirect, the client may not necessarily follow the exact same request.
For example, the client may change a GET request into a POST request in the case of a 301 redirect.