I don't understand the rationale behind the new codes.<p>In particular, look at the first one: 428 Precondition Required. This is essentially the server saying to the client, "You don't know how to make requests to me." What is the client supposed to do about it? Make requests that can result in the desired responses, of course, or stop making requests. But that's true of any 4xx response code. So what functionality does the new 428 code add? None that I can see.<p>If you click through to the RFC itself, the section on 428 says:<p><pre><code> Responses using this status code SHOULD explain how to resubmit the
request successfully.
</code></pre>
It then gives an example of an HTML body representing a human-readable message that explains that "If-Match" should be used. Fine, that's good. I approve. But every HTTP response comes with a body; we can already do this just fine without having code 428.<p>So, again, what actual functionality does the 428 response code get us? It results in a bit of new code being added to every web client, making them all just a teensy bit more complicated. But to what end?