The following HTTP status codes are all valid responses:
200 - generic successful response, expect a body
201 - entity created, expect a body and a Location header
204 - successful response without body
301 - redirection
400 - invalid request (syntax, value, etc)
401 - unauthenticated client
403 - authenticated client unable to perform action
409 - that action is impossible due to some (possibly permanent) circumstance
415 - unsupported media type
Responses that don't have a 200-level response code are not guaranteed to have a body. If a response does happen to return a body, it is not part of this spec and cannot be depended upon.