Changeset 352 for draft-ietf-httpbis/latest
- Timestamp:
- 12/11/08 23:02:03 (14 years ago)
- Location:
- draft-ietf-httpbis/latest
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
draft-ietf-httpbis/latest/p1-messaging.html
r351 r352 1065 1065 <a href="#core.rules" class="smpl">CRLF</a> 1066 1066 1067 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> [ <a href="#chunked.transfer.encoding" class="smpl">chunk-ext ension</a> ] <a href="#core.rules" class="smpl">CRLF</a>1067 <a href="#chunked.transfer.encoding" class="smpl">chunk</a> = <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> [ <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1068 1068 <a href="#chunked.transfer.encoding" class="smpl">chunk-data</a> <a href="#core.rules" class="smpl">CRLF</a> 1069 1069 <a href="#chunked.transfer.encoding" class="smpl">chunk-size</a> = 1*<a href="#core.rules" class="smpl">HEXDIG</a> 1070 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.transfer.encoding" class="smpl">chunk-ext ension</a> ] <a href="#core.rules" class="smpl">CRLF</a>1070 <a href="#chunked.transfer.encoding" class="smpl">last-chunk</a> = 1*("0") [ <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> ] <a href="#core.rules" class="smpl">CRLF</a> 1071 1071 1072 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext ension</a>= *( ";" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> [ "=" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> ] )1072 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext</a> = *( ";" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> [ "=" <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> ] ) 1073 1073 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-name</a> = <a href="#rule.token.separators" class="smpl">token</a> 1074 1074 <a href="#chunked.transfer.encoding" class="smpl">chunk-ext-val</a> = <a href="#rule.token.separators" class="smpl">token</a> / <a href="#rule.quoted-string" class="smpl">quoted-string</a> … … 1097 1097 </p> 1098 1098 <p id="rfc.section.3.4.1.p.7">A process for decoding the "chunked" transfer-coding can be represented in pseudo-code as:</p> 1099 <div id="rfc.figure.u.25"></div><pre class="text"> 1100 read chunk-size, chunk-extension(if any) and CRLF1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 </pre><p id="rfc.section.3.4.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext ensionextensions they do not understand.1099 <div id="rfc.figure.u.25"></div><pre class="text"> length := 0 1100 read chunk-size, chunk-ext (if any) and CRLF 1101 while (chunk-size > 0) { 1102 read chunk-data and CRLF 1103 append chunk-data to entity-body 1104 length := length + chunk-size 1105 read chunk-size and CRLF 1106 } 1107 read entity-header 1108 while (entity-header not empty) { 1109 append entity-header to existing header fields 1110 read entity-header 1111 } 1112 Content-Length := length 1113 Remove "chunked" from Transfer-Encoding 1114 </pre><p id="rfc.section.3.4.1.p.9">All HTTP/1.1 applications <em class="bcp14">MUST</em> be able to receive and decode the "chunked" transfer-coding, and <em class="bcp14">MUST</em> ignore chunk-ext extensions they do not understand. 1115 1115 </p> 1116 1116 <h2 id="rfc.section.3.5"><a href="#rfc.section.3.5">3.5</a> <a id="product.tokens" href="#product.tokens">Product Tokens</a></h2> … … 2796 2796 <li class="indline1"><tt>chunk</tt> <a class="iref" href="#rfc.iref.g.43"><b>3.4.1</b></a></li> 2797 2797 <li class="indline1"><tt>chunk-data</tt> <a class="iref" href="#rfc.iref.g.49"><b>3.4.1</b></a></li> 2798 <li class="indline1"><tt>chunk-ext</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.4.1</b></a></li> 2798 2799 <li class="indline1"><tt>chunk-ext-name</tt> <a class="iref" href="#rfc.iref.g.47"><b>3.4.1</b></a></li> 2799 2800 <li class="indline1"><tt>chunk-ext-val</tt> <a class="iref" href="#rfc.iref.g.48"><b>3.4.1</b></a></li> 2800 <li class="indline1"><tt>chunk-extension</tt> <a class="iref" href="#rfc.iref.g.46"><b>3.4.1</b></a></li>2801 2801 <li class="indline1"><tt>chunk-size</tt> <a class="iref" href="#rfc.iref.g.44"><b>3.4.1</b></a></li> 2802 2802 <li class="indline1"><tt>Chunked-Body</tt> <a class="iref" href="#rfc.iref.g.42"><b>3.4.1</b></a></li> -
draft-ietf-httpbis/latest/p1-messaging.xml
r351 r352 1011 1011 <x:anchor-alias value="Chunked-Body"/> 1012 1012 <x:anchor-alias value="chunk-data"/> 1013 <x:anchor-alias value="chunk-ext ension"/>1013 <x:anchor-alias value="chunk-ext"/> 1014 1014 <x:anchor-alias value="chunk-ext-name"/> 1015 1015 <x:anchor-alias value="chunk-ext-val"/> … … 1025 1025 received the full message. 1026 1026 </t> 1027 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Chunked-Body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-ext ension"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/>1027 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Chunked-Body"/><iref primary="true" item="Grammar" subitem="chunk"/><iref primary="true" item="Grammar" subitem="chunk-size"/><iref primary="true" item="Grammar" subitem="last-chunk"/><iref primary="true" item="Grammar" subitem="chunk-ext"/><iref primary="true" item="Grammar" subitem="chunk-ext-name"/><iref primary="true" item="Grammar" subitem="chunk-ext-val"/><iref primary="true" item="Grammar" subitem="chunk-data"/><iref primary="true" item="Grammar" subitem="trailer-part"/> 1028 1028 <x:ref>Chunked-Body</x:ref> = *<x:ref>chunk</x:ref> 1029 1029 <x:ref>last-chunk</x:ref> … … 1031 1031 <x:ref>CRLF</x:ref> 1032 1032 1033 <x:ref>chunk</x:ref> = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-ext ension</x:ref> ] <x:ref>CRLF</x:ref>1033 <x:ref>chunk</x:ref> = <x:ref>chunk-size</x:ref> [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref> 1034 1034 <x:ref>chunk-data</x:ref> <x:ref>CRLF</x:ref> 1035 1035 <x:ref>chunk-size</x:ref> = 1*<x:ref>HEXDIG</x:ref> 1036 <x:ref>last-chunk</x:ref> = 1*("0") [ <x:ref>chunk-ext ension</x:ref> ] <x:ref>CRLF</x:ref>1036 <x:ref>last-chunk</x:ref> = 1*("0") [ <x:ref>chunk-ext</x:ref> ] <x:ref>CRLF</x:ref> 1037 1037 1038 <x:ref>chunk-ext ension</x:ref>= *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] )1038 <x:ref>chunk-ext</x:ref> = *( ";" <x:ref>chunk-ext-name</x:ref> [ "=" <x:ref>chunk-ext-val</x:ref> ] ) 1039 1039 <x:ref>chunk-ext-name</x:ref> = <x:ref>token</x:ref> 1040 1040 <x:ref>chunk-ext-val</x:ref> = <x:ref>token</x:ref> / <x:ref>quoted-string</x:ref> … … 1082 1082 </t> 1083 1083 <figure><artwork type="code"> 1084 1085 read chunk-size, chunk-extension(if any) and CRLF1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1084 length := 0 1085 read chunk-size, chunk-ext (if any) and CRLF 1086 while (chunk-size > 0) { 1087 read chunk-data and CRLF 1088 append chunk-data to entity-body 1089 length := length + chunk-size 1090 read chunk-size and CRLF 1091 } 1092 read entity-header 1093 while (entity-header not empty) { 1094 append entity-header to existing header fields 1095 read entity-header 1096 } 1097 Content-Length := length 1098 Remove "chunked" from Transfer-Encoding 1099 1099 </artwork></figure> 1100 1100 <t> 1101 1101 All HTTP/1.1 applications &MUST; be able to receive and decode the 1102 "chunked" transfer-coding, and &MUST; ignore chunk-ext ensionextensions1102 "chunked" transfer-coding, and &MUST; ignore chunk-ext extensions 1103 1103 they do not understand. 1104 1104 </t>
Note: See TracChangeset
for help on using the changeset viewer.