The HTTP/1.1 specification (RFC2616) defines a number of status codes that can be returned by HTTP server to signal certain conditions. Some of those codes can be utilized by web applications (and frameworks). Which of those codes are the most useful in practice in both classic and asynchronous (XHR) responses, in what situations you use each of them?
Which codes should be avoided, eg. should applications mess with the 5xx code range at all? What are your conventions when returning HTTP codes in REST web services? Do you ever use redirects other than 302?
The ones I’m using (that I could find with a quick
grep 'Status:'anyway):I realise I could get away with simply letting the server send ‘200’ for everything, but they save a lot of pain when users are seeing (or causing) errors and not telling you about them. I’ve already got functions to display access-denied messages and so on, so it’s not much work to add these anyway.