Mark Nottingham wrote: > >> the recipient of the entity MUST NOT ignore any Content-* (e.g. >> Content-Range) headers that it does not understand or implement and >> MUST return a 501 (Not Implemented) response in such cases. > > (as 2616 does). > > So, in theory you can PUT with Content-Range and know that if the server > doesn't support resumable requests, you'll get a 501. In practice, of > course, may be a completely different kettle of fish.
The reason this isn't a solution is that the server must swallow the body of the request or lose keepalive and pipeline optimizations; 501 isn't an intermediate response. I wonder if a new 100-class code, the inverse of CONTINUE, wouldn't be of value in HTTP/next to designate that a the request body can be omitted since a final determination is available. The client would still have to send a body (since there is no ack) but using a chunked send, a chunk of 0 bytes to finalize an empty request body would be sufficient.
