Yeah, the docs say that 302 (and also 301) SHOULD NOT automatically redirect except for GET/HEAD but, as per the [comment at line 311](https://github.com/square/okhttp/blob/3857567/src/main/java/com/squareup/okhttp/internal/http/HttpURLConnectionImpl.java#L311), historically UAs haven't implemented the specified behaviour for automatic redirects or method changing.

I think this is the reason why the 307 status code was introduced; to make sure that UAs implement the originally-intended behaviour — i.e. to *not* automatically redirect POST requests.

I just tested this in Firefox and it *will* follow a 302 POST (contrary to the spec, but matching the existing code here), but it correctly does *not* automatically follow a 307 (it prompts the user with a popup).

So I have the feeling that libraries should implement the specified 307 behaviour, but allow the de facto non-compliant behaviour for 302.