* WGs marked with an * asterisk has had at least one new draft made available during the last 5 days

Changeset 1706


Ignore:
Timestamp:
2012-07-03 02:29:18 (2 years ago)
Author:
julian.reschke@gmx.de
Message:

clarify connection header field values are case-insensitive (see #359)

Location:
draft-ietf-httpbis/latest
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/httpbis.abnf

    r1695 r1706  
    1313BWS = OWS 
    1414Cache-Control = *( "," OWS ) cache-directive *( OWS "," [ OWS cache-directive ] ) 
    15 Connection = *( "," OWS ) connection-token *( OWS "," [ OWS connection-token ] ) 
     15Connection = *( "," OWS ) connection-option *( OWS "," [ OWS connection-option ] ) 
    1616Content-Encoding = *( "," OWS ) content-coding *( OWS "," [ OWS content-coding ] ) 
    1717Content-Language = *( "," OWS ) language-tag *( OWS "," [ OWS language-tag ] ) 
     
    9292codings = content-coding / "identity" / "*" 
    9393comment = "(" *( ctext / quoted-cpair / comment ) ")" 
    94 connection-token = token 
     94connection-option = token 
    9595content-coding = token 
    9696credentials = auth-scheme [ 1*SP ( b64token / [ ( "," / auth-param ) *( OWS "," [ OWS auth-param ] ) ] ) ] 
  • draft-ietf-httpbis/latest/p1-messaging.html

    r1705 r1706  
    19961996      </p> 
    19971997      <p id="rfc.section.6.1.p.2">The Connection header field's value has the following grammar:</p> 
    1998       <div id="rfc.figure.u.59"></div><pre class="inline"><span id="rfc.iref.g.85"></span><span id="rfc.iref.g.86"></span>  <a href="#header.connection" class="smpl">Connection</a>       = 1#<a href="#header.connection" class="smpl">connection-token</a> 
    1999   <a href="#header.connection" class="smpl">connection-token</a> = <a href="#rule.token.separators" class="smpl">token</a> 
    2000 </pre><p id="rfc.section.6.1.p.4">A proxy or gateway <em class="bcp14">MUST</em> parse a received Connection header field before a message is forwarded and, for each connection-token in this field, remove 
    2001          any header field(s) from the message with the same name as the connection-token, and then remove the Connection header field 
     1998      <div id="rfc.figure.u.59"></div><pre class="inline"><span id="rfc.iref.g.85"></span><span id="rfc.iref.g.86"></span>  <a href="#header.connection" class="smpl">Connection</a>        = 1#<a href="#header.connection" class="smpl">connection-option</a> 
     1999  <a href="#header.connection" class="smpl">connection-option</a> = <a href="#rule.token.separators" class="smpl">token</a> 
     2000</pre><p id="rfc.section.6.1.p.4">Connection options are compared case-insensitively.</p> 
     2001      <p id="rfc.section.6.1.p.5">A proxy or gateway <em class="bcp14">MUST</em> parse a received Connection header field before a message is forwarded and, for each connection-option in this field, remove 
     2002         any header field(s) from the message with the same name as the connection-option, and then remove the Connection header field 
    20022003         itself or replace it with the sender's own connection options for the forwarded message. 
    20032004      </p> 
    2004       <p id="rfc.section.6.1.p.5">A sender <em class="bcp14">MUST NOT</em> include field-names in the Connection header field-value for fields that are defined as expressing constraints for all recipients 
     2005      <p id="rfc.section.6.1.p.6">A sender <em class="bcp14">MUST NOT</em> include field-names in the Connection header field-value for fields that are defined as expressing constraints for all recipients 
    20052006         in the request or response chain, such as the Cache-Control header field (<a href="p6-cache.html#header.cache-control" title="Cache-Control">Section 3.2</a> of <a href="#Part6" id="rfc.xref.Part6.7"><cite title="HTTP/1.1, part 6: Caching">[Part6]</cite></a>). 
    20062007      </p> 
    2007       <p id="rfc.section.6.1.p.6">The connection options do not have to correspond to a header field present in the message, since a connection-specific header 
     2008      <p id="rfc.section.6.1.p.7">The connection options do not have to correspond to a header field present in the message, since a connection-specific header 
    20082009         field might not be needed if there are no parameters associated with that connection option. Recipients that trigger certain 
    2009          connection behavior based on the presence of connection options <em class="bcp14">MUST</em> do so based on the presence of the connection-token rather than only the presence of the optional header field. In other words, 
    2010          if the connection option is received as a header field but not indicated within the Connection field-value, then the recipient <em class="bcp14">MUST</em> ignore the connection-specific header field because it has likely been forwarded by an intermediary that is only partially 
     2010         connection behavior based on the presence of connection options <em class="bcp14">MUST</em> do so based on the presence of the connection-option rather than only the presence of the optional header field. In other 
     2011         words, if the connection option is received as a header field but not indicated within the Connection field-value, then the 
     2012         recipient <em class="bcp14">MUST</em> ignore the connection-specific header field because it has likely been forwarded by an intermediary that is only partially 
    20112013         conformant. 
    20122014      </p> 
    2013       <p id="rfc.section.6.1.p.7">When defining new connection options, specifications ought to carefully consider existing deployed header fields and ensure 
    2014          that the new connection-token does not share the same name as an unrelated header field that might already be deployed. Defining 
    2015          a new connection-token essentially reserves that potential field-name for carrying additional information related to the connection 
    2016          option, since it would be unwise for senders to use that field-name for anything else. 
    2017       </p> 
    2018       <p id="rfc.section.6.1.p.8">HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion 
     2015      <p id="rfc.section.6.1.p.8">When defining new connection options, specifications ought to carefully consider existing deployed header fields and ensure 
     2016         that the new connection option does not share the same name as an unrelated header field that might already be deployed. Defining 
     2017         a new connection option essentially reserves that potential field-name for carrying additional information related to the 
     2018         connection option, since it would be unwise for senders to use that field-name for anything else. 
     2019      </p> 
     2020      <p id="rfc.section.6.1.p.9">HTTP/1.1 defines the "close" connection option for the sender to signal that the connection will be closed after completion 
    20192021         of the response. For example, 
    20202022      </p> 
    20212023      <div id="rfc.figure.u.60"></div><pre class="text">  Connection: close 
    2022 </pre><p id="rfc.section.6.1.p.10">in either the request or the response header fields indicates that the connection <em class="bcp14">SHOULD NOT</em> be considered "persistent" (<a href="#persistent.connections" title="Persistent Connections">Section&nbsp;6.3</a>) after the current request/response is complete. 
    2023       </p> 
    2024       <p id="rfc.section.6.1.p.11">An HTTP/1.1 client that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every request message. 
    2025       </p> 
    2026       <p id="rfc.section.6.1.p.12">An HTTP/1.1 server that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every response message that does not have a 1xx (Informational) status code. 
     2024</pre><p id="rfc.section.6.1.p.11">in either the request or the response header fields indicates that the connection <em class="bcp14">SHOULD NOT</em> be considered "persistent" (<a href="#persistent.connections" title="Persistent Connections">Section&nbsp;6.3</a>) after the current request/response is complete. 
     2025      </p> 
     2026      <p id="rfc.section.6.1.p.12">An HTTP/1.1 client that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every request message. 
     2027      </p> 
     2028      <p id="rfc.section.6.1.p.13">An HTTP/1.1 server that does not support persistent connections <em class="bcp14">MUST</em> include the "close" connection option in every response message that does not have a 1xx (Informational) status code. 
    20272029      </p> 
    20282030      <div id="rfc.iref.v.1"></div> 
     
    30083010      <div id="rfc.figure.u.67"></div> <pre class="inline"><a href="#rule.whitespace" class="smpl">BWS</a> = OWS 
    30093011 
    3010 <a href="#header.connection" class="smpl">Connection</a> = *( "," OWS ) connection-token *( OWS "," [ OWS 
    3011  connection-token ] ) 
     3012<a href="#header.connection" class="smpl">Connection</a> = *( "," OWS ) connection-option *( OWS "," [ OWS 
     3013 connection-option ] ) 
    30123014<a href="#header.content-length" class="smpl">Content-Length</a> = 1*DIGIT 
    30133015 
     
    30493051<a href="#chunked.encoding" class="smpl">chunked-body</a> = *chunk last-chunk trailer-part CRLF 
    30503052<a href="#rule.comment" class="smpl">comment</a> = "(" *( ctext / quoted-cpair / comment ) ")" 
    3051 <a href="#header.connection" class="smpl">connection-token</a> = token 
     3053<a href="#header.connection" class="smpl">connection-option</a> = token 
    30523054<a href="#rule.comment" class="smpl">ctext</a> = OWS / %x21-27 ; '!'-''' 
    30533055 / %x2A-5B ; '*'-'[' 
     
    35313533      <ul> 
    35323534         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/346">http://tools.ietf.org/wg/httpbis/trac/ticket/346</a>&gt;: "make IANA policy definitions consistent" 
     3535         </li> 
     3536         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/359">http://tools.ietf.org/wg/httpbis/trac/ticket/359</a>&gt;: "clarify connection header field values are case-insensitive" 
    35333537         </li> 
    35343538         <li> &lt;<a href="http://tools.ietf.org/wg/httpbis/trac/ticket/361">http://tools.ietf.org/wg/httpbis/trac/ticket/361</a>&gt;: "ABNF requirements for recipients" 
     
    36023606                        <li><tt>comment</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.48"><b>3.2.4</b></a></li> 
    36033607                        <li><tt>Connection</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.85"><b>6.1</b></a></li> 
    3604                         <li><tt>connection-token</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.86"><b>6.1</b></a></li> 
     3608                        <li><tt>connection-option</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.86"><b>6.1</b></a></li> 
    36053609                        <li><tt>Content-Length</tt>&nbsp;&nbsp;<a href="#rfc.iref.g.53"><b>3.3.2</b></a></li> 
    36063610                        <li>CR&nbsp;&nbsp;<a href="#rfc.iref.g.2"><b>1.2</b></a></li> 
  • draft-ietf-httpbis/latest/p1-messaging.xml

    r1705 r1706  
    26782678  <iref primary="true" item="Header Fields" subitem="Connection" x:for-anchor=""/> 
    26792679  <x:anchor-alias value="Connection"/> 
    2680   <x:anchor-alias value="connection-token"/> 
     2680  <x:anchor-alias value="connection-option"/> 
    26812681<t> 
    26822682   The "Connection" header field allows the sender to specify 
     
    26952695   The Connection header field's value has the following grammar: 
    26962696</t> 
    2697 <figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-token"/> 
    2698   <x:ref>Connection</x:ref>       = 1#<x:ref>connection-token</x:ref> 
    2699   <x:ref>connection-token</x:ref> = <x:ref>token</x:ref> 
     2697<figure><artwork type="abnf2616"><iref primary="true" item="Grammar" subitem="Connection"/><iref primary="true" item="Grammar" subitem="connection-option"/> 
     2698  <x:ref>Connection</x:ref>        = 1#<x:ref>connection-option</x:ref> 
     2699  <x:ref>connection-option</x:ref> = <x:ref>token</x:ref> 
    27002700</artwork></figure> 
     2701<t> 
     2702   Connection options are compared case-insensitively. 
     2703</t> 
    27012704<t> 
    27022705   A proxy or gateway &MUST; parse a received Connection 
    27032706   header field before a message is forwarded and, for each 
    2704    connection-token in this field, remove any header field(s) from 
    2705    the message with the same name as the connection-token, and then 
     2707   connection-option in this field, remove any header field(s) from 
     2708   the message with the same name as the connection-option, and then 
    27062709   remove the Connection header field itself or replace it with the 
    27072710   sender's own connection options for the forwarded message. 
     
    27192722   connection option.  Recipients that trigger certain connection 
    27202723   behavior based on the presence of connection options &MUST; do so 
    2721    based on the presence of the connection-token rather than only the 
     2724   based on the presence of the connection-option rather than only the 
    27222725   presence of the optional header field.  In other words, if the 
    27232726   connection option is received as a header field but not indicated 
     
    27292732   When defining new connection options, specifications ought to 
    27302733   carefully consider existing deployed header fields and ensure 
    2731    that the new connection-token does not share the same name as 
     2734   that the new connection option does not share the same name as 
    27322735   an unrelated header field that might already be deployed. 
    2733    Defining a new connection-token essentially reserves that potential 
     2736   Defining a new connection option essentially reserves that potential 
    27342737   field-name for carrying additional information related to the 
    27352738   connection option, since it would be unwise for senders to use 
     
    49024905<x:ref>BWS</x:ref> = OWS 
    49034906 
    4904 <x:ref>Connection</x:ref> = *( "," OWS ) connection-token *( OWS "," [ OWS 
    4905  connection-token ] ) 
     4907<x:ref>Connection</x:ref> = *( "," OWS ) connection-option *( OWS "," [ OWS 
     4908 connection-option ] ) 
    49064909<x:ref>Content-Length</x:ref> = 1*DIGIT 
    49074910 
     
    49434946<x:ref>chunked-body</x:ref> = *chunk last-chunk trailer-part CRLF 
    49444947<x:ref>comment</x:ref> = "(" *( ctext / quoted-cpair / comment ) ")" 
    4945 <x:ref>connection-token</x:ref> = token 
     4948<x:ref>connection-option</x:ref> = token 
    49464949<x:ref>ctext</x:ref> = OWS / %x21-27 ; '!'-''' 
    49474950 / %x2A-5B ; '*'-'[' 
     
    58245827    </t> 
    58255828    <t> 
     5829      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/359"/>: 
     5830      "clarify connection header field values are case-insensitive" 
     5831    </t> 
     5832    <t> 
    58265833      <eref target="http://tools.ietf.org/wg/httpbis/trac/ticket/361"/>: 
    58275834      "ABNF requirements for recipients" 
Note: See TracChangeset for help on using the changeset viewer.