Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is using the HTTP Content-Range header appropriate when sending a file in chunks using the POST method?

I am working on an existing Silverlight file uploader that breaks files into multiple chunks and transmits the file using multiple HTTP requests.

Currently, it sends the start and total byte information on the querystring, but as learning exercise, I'd like to use a more standards-based approach.

I've previously used the HTTP Content-Range header when implementing an endpoint that serves content. Is this header also appropriate to use when posting content from a client to the server?

like image 910
Daniel Schaffer Avatar asked Sep 16 '25 11:09

Daniel Schaffer


2 Answers

Yes.

RFC 2616 (HTTP 1.1), Section 14 begins by stating:

For entity-header fields, both sender and recipient refer to either the client or the server, depending on who sends and who receives the entity.

Other than that, Section 14.16, which defines the Content-Range header, does not appear to contain any language limiting its use to either the request or response.

like image 114
Daniel Schaffer Avatar answered Sep 18 '25 10:09

Daniel Schaffer


Probably not, at least as of 2014 (the original answer is from 2011).

The updated HTTP 1.1 specification, rfc7231 (4.3.3), says the following about valid POST responses:

An origin server indicates response semantics by choosing an appropriate status code depending on the result of processing the POST request; almost all of the status codes defined by this specification might be received in a response to POST (the exceptions being 206 (Partial Content), 304 (Not Modified), and 416 (Range Not Satisfiable)).

Given that this language was explicitly added to the updated spec, I doubt the authors intended that the Content-Range header be used with the POST method.

like image 38
Steven Avatar answered Sep 18 '25 10:09

Steven