- From: Scott Lawrence <lawrence@agranat.com>
- Date: Fri, 11 Apr 1997 09:18:50 -0400
- To: http-wg@cuckoo.hpl.hp.com
In Memphis, we discussed allowing leading zeros in the specification of a chunk length. For the benefit of those who were not there, and to more fully explain the reason for this change: Our server implementation is for embedded systems: - Usually the response to any request will consist partly of dynamically generated content whose length cannot be known before it is generated (hence the use of chunked encoding). - Embedded systems generally have less flexible buffering schemes (no scatter-gather buffers, for example). We must therefor leave room for the length in a buffer and then fill it when the dynamic content is complete; note that this space does not necessarily fall at the beginning of the buffer. Since we can't even know how many digits the length will require, it is convenient to be allowed to use leading zeros to consume any unused digits (a more complex workaround is available without this change, but it requires more bytes and is unsightly). I propose that the syntax description of chunked encoding be changed to: ================================================================ Chunked-Body = *chunk last-chunk footer CRLF chunk = chunk-size [ chunk-ext ] CRLF chunk-data CRLF chunk-size = 1*HEX last-chunk = 1*("0") [ chunk-ext ] CRLF chunk-ext = *( ";" chunk-ext-name [ "=" chunk-ext-value ] ) chunk-ext-name = token chunk-ext-val = token | quoted-string chunk-data = chunk-size(OCTET) footer = *entity-header The chunked encoding is ended by any chunk whose size is zero, followed by the footer, which is terminated by an empty line. ================================================================ This modified syntax also allows a chunk-ext on the last chunk, which I added just for symmetry, and for the length of the final chunk to be multiple digits as long as they are all zero. -- Scott Lawrence <lawrence@agranat.com> Agranat Systems, Inc. http://www.agranat.com/
Received on Friday, 11 April 1997 06:21:10 UTC