Changeset 1706


Ignore:
Timestamp:
03/07/12 09:29:18 (11 years ago)
Author:
julian.reschke@…
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.