308 is the right way to do it, 301 is the old and slightly buggy way. Specifically, 301 lets a POST get redirected as either a GET or a POST, “for historical reasons”, while 308 guarantees no changes. 308 is not exactly edgy, either, it’s been supported by every browser since 2015.