att-1.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2232.0">
<TITLE>RE: IPP> Chunking Explanation</TITLE>
</HEAD>
<BODY>
<P><FONT SIZE=2>I like Bill's suggestions on Harry's original.</FONT>
</P>
<P><FONT SIZE=2>1. I'd like to clarify the last paragraph of the first section to make sure that its HTTP POST chunked requests that we are talking about. (Some implementations support chunked GET responses, but not chunked POST requests).</FONT></P>
<P><FONT SIZE=2>So change:</FONT>
</P>
<P><FONT SIZE=2>It is encouraged that all IPP servers utilize HTTP1.1 servers that support</FONT>
<BR><FONT SIZE=2>chunking. </FONT>
</P>
<P><FONT SIZE=2>to:</FONT>
</P>
<P><FONT SIZE=2>It is encouraged that all IPP servers utilize HTTP1.1 servers that support</FONT>
<BR><FONT SIZE=2>chunking of POST requests. </FONT>
</P>
<BR>
<BR>
<P><FONT SIZE=2>2. In addition, I'd like to make the last paragraph of the second section to be an encouragement, just like the last paragraph of the first section, rather than just a MAY. What do you think?</FONT></P>
<P><FONT SIZE=2>So change:</FONT>
</P>
<P><FONT SIZE=2>To provide compatability with such servers, IPP clients MAY support the</FONT>
<BR><FONT SIZE=2>ability to determine CONTENT_LENGTH and resubmit the job if error 411 or</FONT>
<BR><FONT SIZE=2>error 413 is encountered in response to a Chunked request.</FONT>
</P>
<P><FONT SIZE=2>to:</FONT>
</P>
<P><FONT SIZE=2>To provide compatability with such servers, it is encouraged that IPP clients support the</FONT>
<BR><FONT SIZE=2>ability to determine CONTENT_LENGTH and resubmit the job if error 411 or</FONT>
<BR><FONT SIZE=2>error 413 is encountered in response to a Chunked request.</FONT>
</P>
<P><FONT SIZE=2>Ok?</FONT>
</P>
<P><FONT SIZE=2>Tom Hastings</FONT>
</P>
<BR>
<BR>
<BR>
<P><FONT SIZE=2>Here is Bill's complete text:</FONT>
</P>
<P><FONT SIZE=2>Paragraph on Problems with the Use of CGI</FONT>
</P>
<P><FONT SIZE=2>RFC2068 requires HTTP1.1 Servers to support both Content Length and</FONT>
<BR><FONT SIZE=2>Chunking for all requests. The use of chunking rather than determining</FONT>
<BR><FONT SIZE=2>Content Length should facilitate the transmission of large, indeterminate</FONT>
<BR><FONT SIZE=2>length print jobs. </FONT>
</P>
<P><FONT SIZE=2>CGI, on the other hand, mandates the presence of the CONTENT_LENGTH</FONT>
<BR><FONT SIZE=2>environment variable. Largely due to this HTTP1.1 / CGI conflict, HTTP1.1</FONT>
<BR><FONT SIZE=2>server implementations exist that do not support Chunking for the HTTP (IPP)</FONT>
<BR><FONT SIZE=2>POST.</FONT>
</P>
<P><FONT SIZE=2>It is encouraged that all IPP servers utilize HTTP1.1 servers that support</FONT>
<BR><FONT SIZE=2>chunking. </FONT>
</P>
<BR>
<P><FONT SIZE=2>Paragraph on IPP Client Handling of Non-Chunking Servers</FONT>
</P>
<P><FONT SIZE=2>RFC2068 requires HTTP1.1 Servers to support both Content Length and</FONT>
<BR><FONT SIZE=2>Chunking for all requests. However, some IPP servers may exist that</FONT>
<BR><FONT SIZE=2>do not support Chunking. In this case, the IPP server may return error</FONT>
<BR><FONT SIZE=2>411(Length Required) in response to the HTTP POST.</FONT>
</P>
<P><FONT SIZE=2>Further, some IPP servers may implement a filter-and-buffer approach to</FONT>
<BR><FONT SIZE=2>determine CONTENT_LENGTH from a chunked encoding before passing the decoded</FONT>
<BR><FONT SIZE=2>request body to a CGI application. If the buffered request grows too large,</FONT>
<BR><FONT SIZE=2>the server may reject the request with status code 413 (Request Entity Too</FONT>
<BR><FONT SIZE=2>Large). If this occurs, the IPP server may also close the connection to</FONT>
<BR><FONT SIZE=2>prevent the client from continuing the request. </FONT>
</P>
<P><FONT SIZE=2>To provide compatability with such servers, IPP clients MAY support the</FONT>
<BR><FONT SIZE=2>ability to determine CONTENT_LENGTH and resubmit the job if error 411 or</FONT>
<BR><FONT SIZE=2>error 413 is encountered in response to a Chunked request.</FONT>
</P>
</BODY>
</HTML>