Ignore:
Timestamp:
28/05/14 13:37:53 (6 years ago)
Author:
julian.reschke@…
Message:

updated AUTH48 versions of RFC7231 and RFC7232 (#553)

Location:
draft-ietf-httpbis/latest/auth48
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • draft-ietf-httpbis/latest/auth48/rfc7231-to-be.xml

    r2686 r2704  
    308308<t>
    309309   Charset names ought to be registered in the IANA "Character Sets" registry
    310    (<eref target="http://www.iana.org/assignments/character-sets"/>)
     310   (&lt;http://www.iana.org/assignments/character-sets&gt;)
    311311   according to the procedures defined in <xref target="RFC2978"/>.
    312312</t>
     
    40634063  token (<xref target="methods"/>).
    40644064  The method registry has been created and is now maintained at
    4065   <eref target="http://www.iana.org/assignments/http-methods"/>.
     4065  &lt;http://www.iana.org/assignments/http-methods&gt;.
    40664066</t>
    40674067
     
    41914191   The "Hypertext Transfer Protocol (HTTP) Status Code Registry" defines the namespace for the response
    41924192   status-code token (<xref target="status.codes"/>). The status code registry
    4193    is maintained at <eref target="http://www.iana.org/assignments/http-status-codes"/>.
     4193   is maintained at &lt;http://www.iana.org/assignments/http-status-codes&gt;.
    41944194</t>
    41954195<t>
     
    44564456<t>
    44574457   HTTP header fields are registered within the "Message Headers" registry
    4458    located at <eref target="http://www.iana.org/assignments/message-headers"/>,
     4458   located at &lt;http://www.iana.org/assignments/message-headers&gt;,
    44594459   as defined by <xref target="BCP90"/>.
    44604460</t>
     
    47114711   coding names (Section 4.2 of <xref target="RFC7230"/>).
    47124712   The content coding registry is maintained at
    4713    <eref target="http://www.iana.org/assignments/http-parameters"/>.
     4713   &lt;http://www.iana.org/assignments/http-parameters&gt;.
    47144714</t>
    47154715
  • draft-ietf-httpbis/latest/auth48/rfc7232-to-be.unpg.txt

    r2677 r2704  
    239239   (Section 2.3).  Additional metadata that reflects resource state has
    240240   been defined by various extensions of HTTP, such as Web Distributed
    241    Authoring and Versioning (WebDAV) [RFC4918], that are beyond the
     241   Authoring and Versioning (WebDAV, [RFC4918]), that are beyond the
    242242   scope of this specification.  A resource metadata value is referred
    243243   to as a "validator" when it is used within a precondition.
     
    260260   the representation data, such as when a semantically significant part
    261261   of the representation metadata is changed (e.g., Content-Type), but
    262    it is in the best interests of the origin server to change only the
     262   it is in the best interests of the origin server to only change the
    263263   value when it is necessary to invalidate the stored responses held by
    264264   remote caches and authoring tools.
     
    421421
    422422   o  The validator is about to be used by a client in an If-Modified-
    423       Since or If-Unmodified-Since header field, because the client has
    424       a cache entry, or If-Range for the associated representation, and
     423      Since, If-Unmodified-Since, or If-Range header field, because the
     424      client has a cache entry for the associated representation, and
    425425
    426426   o  That cache entry includes a Date value, which gives the time when
     
    732732   An origin server MUST NOT perform the requested method if a received
    733733   If-Match condition evaluates to false; instead, the origin server
    734    MUST respond with either: a) the 412 (Precondition Failed) status
    735    code or b) one of the 2xx (Successful) status codes if the origin
     734   MUST respond with either a) the 412 (Precondition Failed) status code
     735   or b) one of the 2xx (Successful) status codes if the origin server
    736736
    737737
     
    743743
    744744
    745    server has verified that a state change is being requested and the
    746    final state is already reflected in the current state of the target
     745   has verified that a state change is being requested and the final
     746   state is already reflected in the current state of the target
    747747   resource (i.e., the change requested by the user agent has already
    748748   succeeded, but the user agent might not be aware of it, perhaps
     
    839839   If-None-Match header field; the condition in If-None-Match is
    840840   considered to be a more accurate replacement for the condition in If-
    841    Modified-Since and the two are only combined for the sake of
     841   Modified-Since, and the two are only combined for the sake of
    842842   interoperating with older intermediaries that might not implement If-
    843843   None-Match.
     
    994994   representation as if it were the payload of a 200 (OK) response.
    995995
    996    The server generating a 304 (Not Modified) response MUST generate any
    997    of the following header fields that would have been sent in a 200
    998    (OK) response to the same request: Cache-Control, Content-Location,
    999    Date, ETag, Expires, and Vary.
    1000 
    1001    Since the goal of a 304 (Not Modified) response is to minimize
    1002    information transfer when the recipient already has one or more
    1003    cached representations, a sender SHOULD NOT generate representation
    1004    metadata other than the above listed fields unless said metadata
    1005    exists for the purpose of guiding cache updates (e.g., Last-Modified
    1006    might be useful if the response does not have an ETag field).
    1007 
    1008    Requirements on a cache that receives a 304 (Not Modified) response
    1009    are defined in Section 4.3.4 of [RFC7234].  If the conditional
    1010    request originated with an outbound client, such as a user agent with
    1011    its own cache sending a conditional GET to a shared proxy, then the
    1012    proxy SHOULD forward the 304 (Not Modified) response to that client.
    1013 
    1014    A 304 (Not Modified) response cannot contain a message-body; it is
    1015    always terminated by the first empty line after the header fields.
     996   The server generating a 304 response MUST generate any of the
     997   following header fields that would have been sent in a 200 (OK)
     998   response to the same request: Cache-Control, Content-Location, Date,
     999   ETag, Expires, and Vary.
     1000
     1001   Since the goal of a 304 response is to minimize information transfer
     1002   when the recipient already has one or more cached representations, a
     1003   sender SHOULD NOT generate representation metadata other than the
     1004   above listed fields unless said metadata exists for the purpose of
     1005   guiding cache updates (e.g., Last-Modified might be useful if the
     1006   response does not have an ETag field).
     1007
     1008   Requirements on a cache that receives a 304 response are defined in
     1009   Section 4.3.4 of [RFC7234].  If the conditional request originated
     1010   with an outbound client, such as a user agent with its own cache
     1011   sending a conditional GET to a shared proxy, then the proxy SHOULD
     1012   forward the 304 response to that client.
     1013
     1014   A 304 response cannot contain a message-body; it is always terminated
     1015   by the first empty line after the header fields.
    10161016
    101710174.2.  412 Precondition Failed
     
    116011607.1.  Status Code Registration
    11611161
    1162    The "HTTP Status Codes" registry located at
    1163    <http://www.iana.org/assignments/http-status-codes> has been updated
    1164    with the registrations below:
     1162   The "Hypertext Transfer Protocol (HTTP) Status Code Registry" located
     1163   at <http://www.iana.org/assignments/http-status-codes> has been
     1164   updated with the registrations below:
    11651165
    11661166   +-------+---------------------+-------------+
     
    117311737.2.  Header Field Registration
    11741174
    1175    HTTP header fields are registered within the Message Header Field
    1176    Registry maintained at
     1175   HTTP header fields are registered within the "Message Headers"
     1176   registry maintained at
    11771177   <http://www.iana.org/assignments/message-headers/>.
    11781178
     
    12181218   and users of known security concerns specific to the HTTP conditional
    12191219   request mechanisms.  More general security considerations are
    1220    addressed in the HTTP messaging [RFC7230] and semantics [RFC7231]
    1221    documents.
     1220   addressed in HTTP "Message Syntax and Routing" [RFC7230] and
     1221   "Semantics and Content" [RFC7231].
    12221222
    12231223   The validators defined by this specification are not intended to
     
    12951295Appendix A.  Changes from RFC 2616
    12961296
    1297    The definition of validator weakness has been expanded and clarified
    1298    (Section 2.1).
     1297   The definition of validator weakness has been expanded and clarified.
     1298   (Section 2.1)
    12991299
    13001300   Weak entity-tags are now allowed in all requests except range
    1301    requests.  (Sections 2.1 and 3.2.)
     1301   requests.  (Sections 2.1 and 3.2)
    13021302
    13031303   The ETag header field ABNF has been changed to not use quoted-string,
    1304    thus avoiding escaping issues (Section 2.3).
     1304   thus avoiding escaping issues.  (Section 2.3)
    13051305
    13061306
     
    13151315   ETag is defined to provide an entity tag for the selected
    13161316   representation, thereby clarifying what it applies to in various
    1317    situations (such as a PUT response) (Section 2.3).
     1317   situations (such as a PUT response).  (Section 2.3)
    13181318
    13191319   The precedence for evaluation of conditional requests has been
    1320    defined (Section 6).
     1320   defined.  (Section 6)
    13211321
    13221322Appendix B.  Imported ABNF
     
    13311331   The rules below are defined in [RFC7230]:
    13321332
    1333      OWS           = <OWS, defined in [RFC7230], Section 3.2.3>
    1334      obs-text      = <obs-text, defined in [RFC7230], Section 3.2.6>
    1335 
    1336    The rule below is defined in [RFC7231]:
    1337 
    1338      HTTP-date     = <HTTP-date, defined in [RFC7231], Section 7.1.1.1>
     1333     OWS           = <OWS, see [RFC7230], Section 3.2.3>
     1334     obs-text      = <obs-text, see [RFC7230], Section 3.2.6>
     1335
     1336   The rules below are defined in other parts:
     1337
     1338     HTTP-date     = <HTTP-date, see [RFC7231], Section 7.1.1.1>
    13391339
    13401340Appendix C.  Collected ABNF
     
    13721372   ETag = entity-tag
    13731373
    1374    HTTP-date = <HTTP-date, defined in [RFC7231], Section 7.1.1.1>
     1374   HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
    13751375
    13761376   If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS
     
    13831383   Last-Modified = HTTP-date
    13841384
    1385    OWS = <OWS, defined in [RFC7230], Section 3.2.3>
     1385   OWS = <OWS, see [RFC7230], Section 3.2.3>
    13861386
    13871387   entity-tag = [ weak ] opaque-tag
     
    13891389    / obs-text
    13901390
    1391    obs-text = <obs-text, defined in [RFC7230], Section 3.2.6>
     1391   obs-text = <obs-text, see [RFC7230], Section 3.2.6>
    13921392   opaque-tag = DQUOTE *etagc DQUOTE
    13931393
  • draft-ietf-httpbis/latest/auth48/rfc7232-to-be.xml

    r2677 r2704  
    44    extensions to RFC2629(bis) from documents for processing with xml2rfc.
    55-->
    6 
    7 <!-- [rfced] Please note that xml2rfc v1 was used to create the text file in
    8 order to get the full contents of the Index.
    9 -->
    10 
    116<?xml-stylesheet type='text/xsl' href='../myxml2rfc.xslt'?>
    127<?rfc toc="yes" ?>
     
    6358  <workgroup>HTTPbis Working Group</workgroup>
    6459
    65 <!-- [rfced] Please insert any keywords (beyond those that appear in
    66 the title) for use on http://www.rfc-editor.org/search.
    67 -->
    68 
    69 <keyword>example</keyword>
    70 
     60  <keyword>Hypertext Transfer Protocol</keyword>
     61  <keyword>HTTP</keyword>
     62  <keyword>HTTP conditional requests</keyword>
    7163
    7264<abstract>
     
    154146   (<xref target="header.last-modified"/>) and opaque entity tags
    155147   (<xref target="header.etag"/>).  Additional metadata that reflects resource state
    156    has been defined by various extensions of HTTP, such as Web Distributed Authoring and Versioning (WebDAV)
    157    <xref target="RFC4918"/>, that are beyond the scope of this specification.
     148   has been defined by various extensions of HTTP, such as Web Distributed
     149   Authoring and Versioning (WebDAV, <xref target="RFC4918"/>), that are beyond the scope of this specification.
    158150   A resource metadata value is referred to as a "validator"
    159151   when it is used within a precondition.
     
    182174   semantically significant part of the representation metadata is changed
    183175   (e.g., Content-Type), but it is in the best interests of the
    184    origin server to change only the value when it is necessary to invalidate
     176   origin server to only change the value when it is necessary to invalidate
    185177   the stored responses held by remote caches and authoring tools.
    186178</t>
     
    332324<t>
    333325   or
    334 
    335 
    336326  <list style="symbols">
    337      <t>The validator is about to be used by a client in an <xref target="header.if-modified-since" format="none">If-Modified-Since</xref> or
    338         <xref target="header.if-unmodified-since" format="none">If-Unmodified-Since</xref> header field, because the client has
    339         a cache entry, or If-Range for the associated
     327     <t>The validator is about to be used by a client in an <xref target="header.if-modified-since" format="none">If-Modified-Since</xref>,
     328        <xref target="header.if-unmodified-since" format="none">If-Unmodified-Since</xref>, or If-Range header
     329        field, because the client has a cache entry for the associated
    340330        representation, and</t>
    341331     <t>That cache entry includes a Date value, which gives the
     
    462452 
    463453<t>
    464    There are two entity-tag comparison functions, depending
    465    on whether or not the comparison context allows the use of weak validators:
     454   There are two entity-tag comparison functions, depending on whether or not
     455   the comparison context allows the use of weak validators:
    466456  <list style="symbols">
    467457     <t>Strong comparison: two entity-tags are equivalent if both
     
    473463</t>
    474464<t>
    475    The example below shows the results for a set of entity-tag pairs
    476    and both the weak and strong comparison function results:
     465   The example below shows the results for a set of entity-tag pairs and both
     466   the weak and strong comparison function results:
    477467</t>
    478468<texttable align="left">
     
    660650   none of the listed tags match the entity-tag of the selected representation.
    661651
    662 <!--[rfced] May we update this text as follows for the ease of the
     652<!-- [rfced] May we update this text as follows for the ease of the
    663653reader?  We note that similar text exists elsewhere in the document.
    664654
     
    682672   An origin server MUST NOT perform the requested method if a received
    683673   If-Match condition evaluates to false; instead, the origin server MUST
    684    respond with either:
     674   respond with either
    685675   a) the <xref target="status.412" format="none">412 (Precondition Failed)</xref> status code or
    686676   b) one of the 2xx (Successful) status codes if the origin
     
    710700   of those listed in the field-value.
    711701
    712 <!--[rfced] This sentence is a bit tough to parse.  May we update as follows?
     702<!-- [rfced] This sentence is a bit tough to parse.  May we update as follows?
    713703
    714704Original:
     
    779769   evaluates to false; instead, the origin server MUST respond with either
    780770   a) the <xref target="status.304" format="none">304 (Not Modified)</xref> status code if the request method
    781    is GET or HEAD or
    782    b) the <xref target="status.412" format="none">412 (Precondition Failed)</xref> status code for all other
    783    request methods.
     771   is GET or HEAD or b) the <xref target="status.412" format="none">412 (Precondition Failed)</xref> status
     772   code for all other request methods.
    784773</t>
    785774<t>
     
    811800   <xref target="header.if-none-match" format="none">If-None-Match</xref> header field; the condition in
    812801   <xref target="header.if-none-match" format="none">If-None-Match</xref> is considered to be a more accurate
    813    replacement for the condition in If-Modified-Since and the two are only
     802   replacement for the condition in If-Modified-Since, and the two are only
    814803   combined for the sake of interoperating with older intermediaries that
    815804   might not implement <xref target="header.if-none-match" format="none">If-None-Match</xref>.
     
    827816   If-Modified-Since is typically used for two distinct purposes:
    828817   1) to allow efficient updates of a cached representation that does not
    829    have an entity-tag and
    830    2) to limit the scope of a web traversal to resources that have recently
    831    changed.
     818   have an entity-tag and 2) to limit the scope of a web traversal to resources
     819   that have recently changed.
    832820</t>
    833821<t>
     
    920908   The origin server MUST NOT perform the requested method if the selected
    921909   representation's last modification date is more recent than the date
    922    provided in the field-value; instead the
    923    origin server MUST respond with either
     910   provided in the field-value; instead the origin server MUST respond with either
    924911   a) the <xref target="status.412" format="none">412 (Precondition Failed)</xref> status code or
    925912   b) one of the 2xx (Successful) status codes if the origin
     
    946933   recipient to ignore the Range header field if the validator
    947934   doesn't match, resulting in transfer of the new selected representation
    948    instead of a 412 (Precondition Failed) response. If-Range is defined in Section 3.2 of <xref target="RFC7233"/>.
     935   instead of a <xref target="status.412" format="none">412 (Precondition Failed)</xref> response. If-Range is
     936   defined in Section 3.2 of <xref target="RFC7233"/>.
    949937</t>
    950938</section>
     
    969957</t>
    970958<t>
    971    The server generating a 304 (Not Modified) response MUST generate any of the following
     959   The server generating a 304 response MUST generate any of the following
    972960   header fields that would have been sent in a 200 (OK)
    973961   response to the same request:
     
    980968</t>
    981969<t>
    982    Since the goal of a 304 (Not Modified) response is to minimize information transfer
     970   Since the goal of a 304 response is to minimize information transfer
    983971   when the recipient already has one or more cached representations,
    984972   a sender SHOULD NOT generate representation metadata other
     
    988976</t>
    989977<t>
    990    Requirements on a cache that receives a 304 (Not Modified) response are defined in
     978   Requirements on a cache that receives a 304 response are defined in
    991979   Section 4.3.4 of <xref target="RFC7234"/>. If the conditional request originated with an
    992980   outbound client, such as a user agent with its own cache sending a
    993981   conditional GET to a shared proxy, then the proxy SHOULD forward the
    994    304 (Not Modified) response to that client.
    995 </t>
    996 <t>
    997    A 304 (Not Modified) response cannot contain a message-body; it is always
     982   304 response to that client.
     983</t>
     984<t>
     985   A 304 response cannot contain a message-body; it is always
    998986   terminated by the first empty line after the header fields.
    999987</t>
     
    11371125<section title="Status Code Registration" anchor="status.code.registration">
    11381126<t>
    1139    The "HTTP Status Codes" registry located at
    1140    &lt;http://www.iana.org/assignments/http-status-codes&gt;
     1127   The "Hypertext Transfer Protocol (HTTP) Status Code Registry" located at &lt;http://www.iana.org/assignments/http-status-codes&gt;
    11411128   has been updated with the registrations below:
    11421129</t>
     
    11641151<section title="Header Field Registration" anchor="header.field.registration">
    11651152<t>
    1166    HTTP header fields are registered within the Message Header Field Registry
     1153   HTTP header fields are registered within the "Message Headers" registry
    11671154   maintained at
    11681155   &lt;http://www.iana.org/assignments/message-headers/&gt;.
     
    11701157<t>
    11711158   This document defines the following HTTP header fields, so their
    1172    associated registry entries have been updated according to the permanent
    1173    registrations below (see <xref target="BCP90"/>):
     1159   associated registry entries have been updated according to the
     1160   permanent registrations below (see <xref target="BCP90"/>):
    11741161</t>
    11751162
     
    12311218   users of known security concerns specific to the HTTP conditional
    12321219   request mechanisms. More general security considerations are addressed
    1233    in the HTTP messaging <xref target="RFC7230"/> and semantics <xref target="RFC7231"/> documents.
     1220   in HTTP "Message Syntax and Routing" <xref target="RFC7230"/> and "Semantics and Content"
     1221   <xref target="RFC7231"/>.
    12341222</t>
    12351223<t>
     
    14141402  <seriesInfo name="RFC" value="4918"/>
    14151403</reference>
    1416 
    14171404</references>
    14181405
    14191406<section title="Changes from RFC 2616" anchor="changes.from.rfc.2616">
    14201407<t>
    1421   The definition of validator weakness has been expanded and clarified
    1422   (<xref target="weak.and.strong.validators"/>).
     1408  The definition of validator weakness has been expanded and clarified.
     1409  (<xref target="weak.and.strong.validators"/>)
    14231410</t>
    14241411<t>
    14251412  Weak entity-tags are now allowed in all requests except range requests.
    14261413  (Sections <xref target="weak.and.strong.validators" format="counter"/> and
    1427   <xref target="header.if-none-match" format="counter"/>.)
     1414  <xref target="header.if-none-match" format="counter"/>)
    14281415</t>
    14291416<t>
    14301417  The <xref target="header.etag" format="none">ETag</xref> header field ABNF has been changed to not use
    1431   quoted-string, thus avoiding escaping issues
    1432   (<xref target="header.etag"/>).
     1418  quoted-string, thus avoiding escaping issues.
     1419  (<xref target="header.etag"/>)
    14331420</t>
    14341421<t>
    14351422  ETag is defined to provide an entity tag for the selected representation,
    14361423  thereby clarifying what it applies to in various situations (such as a
    1437   PUT response)
    1438   (<xref target="header.etag"/>).
    1439 </t>
    1440 <t>
    1441   The precedence for evaluation of conditional requests has been defined
    1442   (<xref target="precedence"/>).
     1424  PUT response).
     1425  (<xref target="header.etag"/>)
     1426</t>
     1427<t>
     1428  The precedence for evaluation of conditional requests has been defined.
     1429  (<xref target="precedence"/>)
    14431430</t>
    14441431</section>
    14451432
    14461433<section title="Imported ABNF" anchor="imported.abnf">
     1434 
     1435 
     1436 
     1437 
     1438 
     1439 
     1440 
     1441 
     1442 
     1443 
    14471444 
    14481445<t>
     
    14591456</t>
    14601457<figure><artwork type="abnf2616"><![CDATA[
    1461   OWS           = <OWS, defined in [RFC7230], Section 3.2.3>
    1462   obs-text      = <obs-text, defined in [RFC7230], Section 3.2.6>
     1458  OWS           = <OWS, see [RFC7230], Section 3.2.3>
     1459  obs-text      = <obs-text, see [RFC7230], Section 3.2.6>
    14631460]]></artwork></figure>
    14641461<t>
    1465   The rule below is defined in <xref target="RFC7231"/>:
     1462  The rules below are defined in other parts:
    14661463</t>
    14671464<figure><artwork type="abnf2616"><![CDATA[
    1468   HTTP-date     = <HTTP-date, defined in [RFC7231], Section 7.1.1.1>
     1465  HTTP-date     = <HTTP-date, see [RFC7231], Section 7.1.1.1>
    14691466]]></artwork></figure>
    14701467</section>
     
    14781475ETag = entity-tag
    14791476
    1480 HTTP-date = <HTTP-date, defined in [RFC7231], Section 7.1.1.1>
     1477HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
    14811478
    14821479If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS
     
    14891486Last-Modified = HTTP-date
    14901487
    1491 OWS = <OWS, defined in [RFC7230], Section 3.2.3>
     1488OWS = <OWS, see [RFC7230], Section 3.2.3>
    14921489
    14931490entity-tag = [ weak ] opaque-tag
     
    14951492 / obs-text
    14961493
    1497 obs-text = <obs-text, defined in [RFC7230], Section 3.2.6>
     1494obs-text = <obs-text, see [RFC7230], Section 3.2.6>
    14981495opaque-tag = DQUOTE *etagc DQUOTE
    14991496
     
    15031500</section>
    15041501
    1505 
    15061502</back>
    15071503</rfc>
  • draft-ietf-httpbis/latest/auth48/rfc7232.abdiff.txt

    r2681 r2704  
    9797
    9898
    99 Section 2., paragraph 1:
    100 OLD:
    101 
    102     This specification defines two forms of metadata that are commonly
    103     used to observe resource state and test for preconditions:
    104     modification dates (Section 2.2) and opaque entity tags
    105     (Section 2.3).  Additional metadata that reflects resource state has
    106     been defined by various extensions of HTTP, such as Web Distributed
    107     Authoring and Versioning (WebDAV, [RFC4918]), that are beyond the
    108     scope of this specification.  A resource metadata value is referred
    109     to as a "validator" when it is used within a precondition.
    110 
    111 NEW:
    112 
    113     This specification defines two forms of metadata that are commonly
    114     used to observe resource state and test for preconditions:
    115     modification dates (Section 2.2) and opaque entity tags
    116     (Section 2.3).  Additional metadata that reflects resource state has
    117     been defined by various extensions of HTTP, such as Web Distributed
    118     Authoring and Versioning (WebDAV) [RFC4918], that are beyond the
    119     scope of this specification.  A resource metadata value is referred
    120     to as a "validator" when it is used within a precondition.
    121 
    122 
    123 Section 2.1., paragraph 3:
    124 OLD:
    125 
    126     A strong validator might change for reasons other than a change to
    127     the representation data, such as when a semantically significant part
    128     of the representation metadata is changed (e.g., Content-Type), but
    129     it is in the best interests of the origin server to only change the
    130     value when it is necessary to invalidate the stored responses held by
    131     remote caches and authoring tools.
    132 
    133 NEW:
    134 
    135     A strong validator might change for reasons other than a change to
    136     the representation data, such as when a semantically significant part
    137     of the representation metadata is changed (e.g., Content-Type), but
    138     it is in the best interests of the origin server to change only the
    139     value when it is necessary to invalidate the stored responses held by
    140     remote caches and authoring tools.
    141 
    142 
    143 Section 2.2.2., paragraph 5:
    144 OLD:
    145 
    146     o  The validator is about to be used by a client in an If-Modified-
    147        Since, If-Unmodified-Since, or If-Range header field, because the
    148        client has a cache entry for the associated representation, and
    149 
    150 NEW:
    151 
    152     o  The validator is about to be used by a client in an If-Modified-
    153        Since or If-Unmodified-Since header field, because the client has
    154        a cache entry, or If-Range for the associated representation, and
    155 
    156 
    157 Section 3.1., paragraph 8:
    158 OLD:
    159 
    160     An origin server MUST NOT perform the requested method if a received
    161     If-Match condition evaluates to false; instead, the origin server
    162     MUST respond with either a) the 412 (Precondition Failed) status code
    163     or b) one of the 2xx (Successful) status codes if the origin server
    164     has verified that a state change is being requested and the final
    165     state is already reflected in the current state of the target
    166     resource (i.e., the change requested by the user agent has already
    167     succeeded, but the user agent might not be aware of it, perhaps
    168     because the prior response was lost or a compatible change was made
    169     by some other user agent).  In the latter case, the origin server
    170     MUST NOT send a validator header field in the response unless it can
    171     verify that the request is a duplicate of an immediately prior change
    172     made by the same user agent.
    173 
    174 NEW:
    175 
    176     An origin server MUST NOT perform the requested method if a received
    177     If-Match condition evaluates to false; instead, the origin server
    178     MUST respond with either: a) the 412 (Precondition Failed) status
    179     code or b) one of the 2xx (Successful) status codes if the origin
    180     server has verified that a state change is being requested and the
    181     final state is already reflected in the current state of the target
    182     resource (i.e., the change requested by the user agent has already
    183     succeeded, but the user agent might not be aware of it, perhaps
    184     because the prior response was lost or a compatible change was made
    185     by some other user agent).  In the latter case, the origin server
    186     MUST NOT send a validator header field in the response unless it can
    187     verify that the request is a duplicate of an immediately prior change
    188     made by the same user agent.
    189 
    190 
    191 Section 3.3., paragraph 5:
    192 OLD:
    193 
    194     A recipient MUST ignore If-Modified-Since if the request contains an
    195     If-None-Match header field; the condition in If-None-Match is
    196     considered to be a more accurate replacement for the condition in If-
    197     Modified-Since, and the two are only combined for the sake of
    198     interoperating with older intermediaries that might not implement If-
    199     None-Match.
    200 
    201 NEW:
    202 
    203     A recipient MUST ignore If-Modified-Since if the request contains an
    204     If-None-Match header field; the condition in If-None-Match is
    205     considered to be a more accurate replacement for the condition in If-
    206     Modified-Since and the two are only combined for the sake of
    207     interoperating with older intermediaries that might not implement If-
    208     None-Match.
    209 
    210 
    211 Section 4.1., paragraph 2:
    212 OLD:
    213 
    214     The server generating a 304 response MUST generate any of the
    215     following header fields that would have been sent in a 200 (OK)
    216     response to the same request: Cache-Control, Content-Location, Date,
    217     ETag, Expires, and Vary.
    218 
    219 NEW:
    220 
    221     The server generating a 304 (Not Modified) response MUST generate any
    222     of the following header fields that would have been sent in a 200
    223     (OK) response to the same request: Cache-Control, Content-Location,
    224     Date, ETag, Expires, and Vary.
    225 
    226 
    227 Section 4.1., paragraph 3:
    228 OLD:
    229 
    230     Since the goal of a 304 response is to minimize information transfer
    231     when the recipient already has one or more cached representations, a
    232     sender SHOULD NOT generate representation metadata other than the
    233     above listed fields unless said metadata exists for the purpose of
    234     guiding cache updates (e.g., Last-Modified might be useful if the
    235     response does not have an ETag field).
    236 
    237 NEW:
    238 
    239     Since the goal of a 304 (Not Modified) response is to minimize
    240     information transfer when the recipient already has one or more
    241     cached representations, a sender SHOULD NOT generate representation
    242     metadata other than the above listed fields unless said metadata
    243     exists for the purpose of guiding cache updates (e.g., Last-Modified
    244     might be useful if the response does not have an ETag field).
    245 
    246 
    247 Section 4.1., paragraph 4:
    248 OLD:
    249 
    250     Requirements on a cache that receives a 304 response are defined in
    251     Section 4.3.4 of [RFC7234].  If the conditional request originated
    252     with an outbound client, such as a user agent with its own cache
    253     sending a conditional GET to a shared proxy, then the proxy SHOULD
    254     forward the 304 response to that client.
    255 
    256 NEW:
    257 
    258     Requirements on a cache that receives a 304 (Not Modified) response
    259     are defined in Section 4.3.4 of [RFC7234].  If the conditional
    260     request originated with an outbound client, such as a user agent with
    261     its own cache sending a conditional GET to a shared proxy, then the
    262     proxy SHOULD forward the 304 (Not Modified) response to that client.
    263 
    264 
    265 Section 4.1., paragraph 5:
    266 OLD:
    267 
    268     A 304 response cannot contain a message-body; it is always terminated
    269     by the first empty line after the header fields.
    270 
    271 NEW:
    272 
    273     A 304 (Not Modified) response cannot contain a message-body; it is
    274     always terminated by the first empty line after the header fields.
    275 
    276 
    277 Section 7.1., paragraph 1:
    278 OLD:
    279 
    280     The "Hypertext Transfer Protocol (HTTP) Status Code Registry" located
    281     at <http://www.iana.org/assignments/http-status-codes> has been
    282     updated with the registrations below:
    283 
    284 NEW:
    285 
    286     The "HTTP Status Codes" registry located at
    287     <http://www.iana.org/assignments/http-status-codes> has been updated
    288     with the registrations below:
    289 
    290 
    291 Section 7.2., paragraph 1:
    292 OLD:
    293 
    294     HTTP header fields are registered within the "Message Headers"
    295     registry maintained at
    296     <http://www.iana.org/assignments/message-headers/>.
    297 
    298 NEW:
    299 
    300     HTTP header fields are registered within the Message Header Field
    301     Registry maintained at
    302     <http://www.iana.org/assignments/message-headers/>.
    303 
    304 
    305 Section 8., paragraph 1:
    306 OLD:
    307 
    308     This section is meant to inform developers, information providers,
    309     and users of known security concerns specific to the HTTP conditional
    310     request mechanisms.  More general security considerations are
    311     addressed in HTTP "Message Syntax and Routing" [RFC7230] and
    312     "Semantics and Content" [RFC7231].
    313 
    314 NEW:
    315 
    316     This section is meant to inform developers, information providers,
    317     and users of known security concerns specific to the HTTP conditional
    318     request mechanisms.  More general security considerations are
    319     addressed in the HTTP messaging [RFC7230] and semantics [RFC7231]
    320     documents.
    321 
    322 
    32399Section 10.1., paragraph 3:
    324100OLD:
     
    381157
    382158
    383 Appendix A., paragraph 1:
    384 OLD:
    385 
    386     The definition of validator weakness has been expanded and clarified.
    387     (Section 2.1)
    388 
    389 NEW:
    390 
    391     The definition of validator weakness has been expanded and clarified
    392     (Section 2.1).
    393 
    394 
    395159Appendix A., paragraph 2:
    396160OLD:
     
    400164    The ETag header field ABNF has been changed to not use quoted-string,
    401165    thus avoiding escaping issues.  (Section 2.3)
    402 
    403 NEW:
    404 
    405     Weak entity-tags are now allowed in all requests except range
    406     requests.  (Sections 2.1 and 3.2.)
    407166 
    408     The ETag header field ABNF has been changed to not use quoted-string,
    409     thus avoiding escaping issues (Section 2.3).
    410 
    411 
    412 Appendix A., paragraph 3:
    413 OLD:
    414 
    415167    ETag is defined to provide an entity tag for the selected
    416168    representation, thereby clarifying what it applies to in various
     
    419171NEW:
    420172
     173    Weak entity-tags are now allowed in all requests except range
     174    requests.  (Sections 2.1 and 3.2)
     175 
     176    The ETag header field ABNF has been changed to not use quoted-string,
     177    thus avoiding escaping issues.  (Section 2.3)
    421178    ETag is defined to provide an entity tag for the selected
    422179    representation, thereby clarifying what it applies to in various
    423     situations (such as a PUT response) (Section 2.3).
     180    situations (such as a PUT response).  (Section 2.3)
    424181
    425 
    426 Appendix A., paragraph 4:
    427 OLD:
    428 
    429     The precedence for evaluation of conditional requests has been
    430     defined.  (Section 6)
    431 
    432 NEW:
    433 
    434     The precedence for evaluation of conditional requests has been
    435     defined (Section 6).
    436 
    437 
    438 Appendix B., paragraph 3:
    439 OLD:
    440 
    441       OWS           = <OWS, see [RFC7230], Section 3.2.3>
    442       obs-text      = <obs-text, see [RFC7230], Section 3.2.6>
    443 
    444 NEW:
    445 
    446       OWS           = <OWS, defined in [RFC7230], Section 3.2.3>
    447       obs-text      = <obs-text, defined in [RFC7230], Section 3.2.6>
    448 
    449 
    450 Appendix B., paragraph 4:
    451 OLD:
    452 
    453     The rules below are defined in other parts:
    454 
    455 NEW:
    456 
    457     The rule below is defined in [RFC7231]:
    458 
    459 
    460 Appendix B., paragraph 5:
    461 OLD:
    462 
    463       HTTP-date     = <HTTP-date, see [RFC7231], Section 7.1.1.1>
    464 
    465 NEW:
    466 
    467       HTTP-date     = <HTTP-date, defined in [RFC7231], Section 7.1.1.1>
    468 
    469 
    470 Section 1.2, paragraph 2:
    471 OLD:
    472 
    473     HTTP-date = <HTTP-date, see [RFC7231], Section 7.1.1.1>
    474 
    475 NEW:
    476 
    477     HTTP-date = <HTTP-date, defined in [RFC7231], Section 7.1.1.1>
    478 
    479 
    480 Section 1.2, paragraph 5:
    481 OLD:
    482 
    483     OWS = <OWS, see [RFC7230], Section 3.2.3>
    484 
    485 NEW:
    486 
    487     OWS = <OWS, defined in [RFC7230], Section 3.2.3>
    488 
    489 
    490 Section 1.2, paragraph 7:
    491 OLD:
    492 
    493     obs-text = <obs-text, see [RFC7230], Section 3.2.6>
    494     opaque-tag = DQUOTE *etagc DQUOTE
    495 
    496 NEW:
    497 
    498     obs-text = <obs-text, defined in [RFC7230], Section 3.2.6>
    499     opaque-tag = DQUOTE *etagc DQUOTE
    500 
  • draft-ietf-httpbis/latest/auth48/rfc7232.diff.html

    r2681 r2704  
    104104      <tr><td class="lineno" valign="top"></td><td class="left">   publication of this document.  Please review these documents</td><td> </td><td class="right">   publication of this document.  Please review these documents</td><td class="lineno" valign="top"></td></tr>
    105105      <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    106       <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 5, line 13</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 5, line 13</em></th><td></td></tr>
    107       <tr><td class="lineno" valign="top"></td><td class="left">   documents.  Appendix C shows the collected grammar with all list</td><td> </td><td class="right">   documents.  Appendix C shows the collected grammar with all list</td><td class="lineno" valign="top"></td></tr>
    108       <tr><td class="lineno" valign="top"></td><td class="left">   operators expanded to standard ABNF notation.</td><td> </td><td class="right">   operators expanded to standard ABNF notation.</td><td class="lineno" valign="top"></td></tr>
    109       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    110       <tr><td class="lineno" valign="top"></td><td class="left">2.  Validators</td><td> </td><td class="right">2.  Validators</td><td class="lineno" valign="top"></td></tr>
    111       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    112       <tr><td class="lineno" valign="top"></td><td class="left">   This specification defines two forms of metadata that are commonly</td><td> </td><td class="right">   This specification defines two forms of metadata that are commonly</td><td class="lineno" valign="top"></td></tr>
    113       <tr><td class="lineno" valign="top"></td><td class="left">   used to observe resource state and test for preconditions:</td><td> </td><td class="right">   used to observe resource state and test for preconditions:</td><td class="lineno" valign="top"></td></tr>
    114       <tr><td class="lineno" valign="top"></td><td class="left">   modification dates (Section 2.2) and opaque entity tags</td><td> </td><td class="right">   modification dates (Section 2.2) and opaque entity tags</td><td class="lineno" valign="top"></td></tr>
    115       <tr><td class="lineno" valign="top"></td><td class="left">   (Section 2.3).  Additional metadata that reflects resource state has</td><td> </td><td class="right">   (Section 2.3).  Additional metadata that reflects resource state has</td><td class="lineno" valign="top"></td></tr>
    116       <tr><td class="lineno" valign="top"></td><td class="left">   been defined by various extensions of HTTP, such as Web Distributed</td><td> </td><td class="right">   been defined by various extensions of HTTP, such as Web Distributed</td><td class="lineno" valign="top"></td></tr>
    117       <tr><td><a name="diff0007" /></td></tr>
    118       <tr><td class="lineno" valign="top"></td><td class="lblock">   Authoring and Versioning (WebDAV<span class="delete">, [RFC4918])</span>, that are beyond the</td><td> </td><td class="rblock">   Authoring and Versioning (WebDAV<span class="insert">) [RFC4918]</span>, that are beyond the</td><td class="lineno" valign="top"></td></tr>
    119       <tr><td class="lineno" valign="top"></td><td class="left">   scope of this specification.  A resource metadata value is referred</td><td> </td><td class="right">   scope of this specification.  A resource metadata value is referred</td><td class="lineno" valign="top"></td></tr>
    120       <tr><td class="lineno" valign="top"></td><td class="left">   to as a "validator" when it is used within a precondition.</td><td> </td><td class="right">   to as a "validator" when it is used within a precondition.</td><td class="lineno" valign="top"></td></tr>
    121       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    122       <tr><td class="lineno" valign="top"></td><td class="left">2.1.  Weak versus Strong</td><td> </td><td class="right">2.1.  Weak versus Strong</td><td class="lineno" valign="top"></td></tr>
    123       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    124       <tr><td class="lineno" valign="top"></td><td class="left">   Validators come in two flavors: strong or weak.  Weak validators are</td><td> </td><td class="right">   Validators come in two flavors: strong or weak.  Weak validators are</td><td class="lineno" valign="top"></td></tr>
    125       <tr><td class="lineno" valign="top"></td><td class="left">   easy to generate but are far less useful for comparisons.  Strong</td><td> </td><td class="right">   easy to generate but are far less useful for comparisons.  Strong</td><td class="lineno" valign="top"></td></tr>
    126       <tr><td class="lineno" valign="top"></td><td class="left">   validators are ideal for comparisons but can be very difficult (and</td><td> </td><td class="right">   validators are ideal for comparisons but can be very difficult (and</td><td class="lineno" valign="top"></td></tr>
    127       <tr><td class="lineno" valign="top"></td><td class="left">   occasionally impossible) to generate efficiently.  Rather than impose</td><td> </td><td class="right">   occasionally impossible) to generate efficiently.  Rather than impose</td><td class="lineno" valign="top"></td></tr>
    128       <tr><td class="lineno" valign="top"></td><td class="left">   that all forms of resource adhere to the same strength of validator,</td><td> </td><td class="right">   that all forms of resource adhere to the same strength of validator,</td><td class="lineno" valign="top"></td></tr>
    129       <tr><td class="lineno" valign="top"></td><td class="left">   HTTP exposes the type of validator in use and imposes restrictions on</td><td> </td><td class="right">   HTTP exposes the type of validator in use and imposes restrictions on</td><td class="lineno" valign="top"></td></tr>
    130       <tr><td class="lineno" valign="top"></td><td class="left">   when weak validators can be used as preconditions.</td><td> </td><td class="right">   when weak validators can be used as preconditions.</td><td class="lineno" valign="top"></td></tr>
    131       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    132       <tr><td class="lineno" valign="top"></td><td class="left">   A "strong validator" is representation metadata that changes value</td><td> </td><td class="right">   A "strong validator" is representation metadata that changes value</td><td class="lineno" valign="top"></td></tr>
    133       <tr><td class="lineno" valign="top"></td><td class="left">   whenever a change occurs to the representation data that would be</td><td> </td><td class="right">   whenever a change occurs to the representation data that would be</td><td class="lineno" valign="top"></td></tr>
    134       <tr><td class="lineno" valign="top"></td><td class="left">   observable in the payload body of a 200 (OK) response to GET.</td><td> </td><td class="right">   observable in the payload body of a 200 (OK) response to GET.</td><td class="lineno" valign="top"></td></tr>
    135       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    136       <tr><td class="lineno" valign="top"></td><td class="left">   A strong validator might change for reasons other than a change to</td><td> </td><td class="right">   A strong validator might change for reasons other than a change to</td><td class="lineno" valign="top"></td></tr>
    137       <tr><td class="lineno" valign="top"></td><td class="left">   the representation data, such as when a semantically significant part</td><td> </td><td class="right">   the representation data, such as when a semantically significant part</td><td class="lineno" valign="top"></td></tr>
    138       <tr><td class="lineno" valign="top"></td><td class="left">   of the representation metadata is changed (e.g., Content-Type), but</td><td> </td><td class="right">   of the representation metadata is changed (e.g., Content-Type), but</td><td class="lineno" valign="top"></td></tr>
    139       <tr><td><a name="diff0008" /></td></tr>
    140       <tr><td class="lineno" valign="top"></td><td class="lblock">   it is in the best interests of the origin server to <span class="delete">only change</span> the</td><td> </td><td class="rblock">   it is in the best interests of the origin server to <span class="insert">change only</span> the</td><td class="lineno" valign="top"></td></tr>
    141       <tr><td class="lineno" valign="top"></td><td class="left">   value when it is necessary to invalidate the stored responses held by</td><td> </td><td class="right">   value when it is necessary to invalidate the stored responses held by</td><td class="lineno" valign="top"></td></tr>
    142       <tr><td class="lineno" valign="top"></td><td class="left">   remote caches and authoring tools.</td><td> </td><td class="right">   remote caches and authoring tools.</td><td class="lineno" valign="top"></td></tr>
    143       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    144       <tr><td class="lineno" valign="top"></td><td class="left">   Cache entries might persist for arbitrarily long periods, regardless</td><td> </td><td class="right">   Cache entries might persist for arbitrarily long periods, regardless</td><td class="lineno" valign="top"></td></tr>
    145       <tr><td class="lineno" valign="top"></td><td class="left">   of expiration times.  Thus, a cache might attempt to validate an</td><td> </td><td class="right">   of expiration times.  Thus, a cache might attempt to validate an</td><td class="lineno" valign="top"></td></tr>
    146       <tr><td class="lineno" valign="top"></td><td class="left">   entry using a validator that it obtained in the distant past.  A</td><td> </td><td class="right">   entry using a validator that it obtained in the distant past.  A</td><td class="lineno" valign="top"></td></tr>
    147       <tr><td class="lineno" valign="top"></td><td class="left">   strong validator is unique across all versions of all representations</td><td> </td><td class="right">   strong validator is unique across all versions of all representations</td><td class="lineno" valign="top"></td></tr>
    148       <tr><td class="lineno" valign="top"></td><td class="left">   associated with a particular resource over time.  However, there is</td><td> </td><td class="right">   associated with a particular resource over time.  However, there is</td><td class="lineno" valign="top"></td></tr>
    149       <tr><td class="lineno" valign="top"></td><td class="left">   no implication of uniqueness across representations of different</td><td> </td><td class="right">   no implication of uniqueness across representations of different</td><td class="lineno" valign="top"></td></tr>
    150       <tr><td class="lineno" valign="top"></td><td class="left">   resources (i.e., the same strong validator might be in use for</td><td> </td><td class="right">   resources (i.e., the same strong validator might be in use for</td><td class="lineno" valign="top"></td></tr>
    151       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    152       <tr bgcolor="gray" ><td></td><th><a name="part-l3" /><small>skipping to change at</small><em> page 8, line 25</em></th><th> </th><th><a name="part-r3" /><small>skipping to change at</small><em> page 8, line 25</em></th><td></td></tr>
    153       <tr><td class="lineno" valign="top"></td><td class="left">   o  The validator is being compared by an origin server to the actual</td><td> </td><td class="right">   o  The validator is being compared by an origin server to the actual</td><td class="lineno" valign="top"></td></tr>
    154       <tr><td class="lineno" valign="top"></td><td class="left">      current validator for the representation and,</td><td> </td><td class="right">      current validator for the representation and,</td><td class="lineno" valign="top"></td></tr>
    155       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    156       <tr><td class="lineno" valign="top"></td><td class="left">   o  That origin server reliably knows that the associated</td><td> </td><td class="right">   o  That origin server reliably knows that the associated</td><td class="lineno" valign="top"></td></tr>
    157       <tr><td class="lineno" valign="top"></td><td class="left">      representation did not change twice during the second covered by</td><td> </td><td class="right">      representation did not change twice during the second covered by</td><td class="lineno" valign="top"></td></tr>
    158       <tr><td class="lineno" valign="top"></td><td class="left">      the presented validator.</td><td> </td><td class="right">      the presented validator.</td><td class="lineno" valign="top"></td></tr>
    159       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    160       <tr><td class="lineno" valign="top"></td><td class="left">   or</td><td> </td><td class="right">   or</td><td class="lineno" valign="top"></td></tr>
    161       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    162       <tr><td class="lineno" valign="top"></td><td class="left">   o  The validator is about to be used by a client in an If-Modified-</td><td> </td><td class="right">   o  The validator is about to be used by a client in an If-Modified-</td><td class="lineno" valign="top"></td></tr>
    163       <tr><td><a name="diff0009" /></td></tr>
    164       <tr><td class="lineno" valign="top"></td><td class="lblock">      <span class="delete">Since, If-Unmodified-Since,</span> or <span class="delete">If-Range</span> header field, because the</td><td> </td><td class="rblock">      <span class="insert">Since</span> or <span class="insert">If-Unmodified-Since</span> header field, because the client has</td><td class="lineno" valign="top"></td></tr>
    165       <tr><td class="lineno" valign="top"></td><td class="lblock">      client has a cache <span class="delete">entry</span> for the associated representation, and</td><td> </td><td class="rblock">      a cache <span class="insert">entry, or If-Range</span> for the associated representation, and</td><td class="lineno" valign="top"></td></tr>
    166       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    167       <tr><td class="lineno" valign="top"></td><td class="left">   o  That cache entry includes a Date value, which gives the time when</td><td> </td><td class="right">   o  That cache entry includes a Date value, which gives the time when</td><td class="lineno" valign="top"></td></tr>
    168       <tr><td class="lineno" valign="top"></td><td class="left">      the origin server sent the original response, and</td><td> </td><td class="right">      the origin server sent the original response, and</td><td class="lineno" valign="top"></td></tr>
    169       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    170       <tr><td class="lineno" valign="top"></td><td class="left">   o  The presented Last-Modified time is at least 60 seconds before the</td><td> </td><td class="right">   o  The presented Last-Modified time is at least 60 seconds before the</td><td class="lineno" valign="top"></td></tr>
    171       <tr><td class="lineno" valign="top"></td><td class="left">      Date value.</td><td> </td><td class="right">      Date value.</td><td class="lineno" valign="top"></td></tr>
    172       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    173       <tr><td class="lineno" valign="top"></td><td class="left">   or</td><td> </td><td class="right">   or</td><td class="lineno" valign="top"></td></tr>
    174       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    175       <tr><td class="lineno" valign="top"></td><td class="left">   o  The validator is being compared by an intermediate cache to the</td><td> </td><td class="right">   o  The validator is being compared by an intermediate cache to the</td><td class="lineno" valign="top"></td></tr>
    176       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    177       <tr bgcolor="gray" ><td></td><th><a name="part-l4" /><small>skipping to change at</small><em> page 13, line 51</em></th><th> </th><th><a name="part-r4" /><small>skipping to change at</small><em> page 13, line 51</em></th><td></td></tr>
    178       <tr><td class="lineno" valign="top"></td><td class="left">   An origin server that receives an If-Match header field MUST evaluate</td><td> </td><td class="right">   An origin server that receives an If-Match header field MUST evaluate</td><td class="lineno" valign="top"></td></tr>
    179       <tr><td class="lineno" valign="top"></td><td class="left">   the condition prior to performing the method (Section 5).  If the</td><td> </td><td class="right">   the condition prior to performing the method (Section 5).  If the</td><td class="lineno" valign="top"></td></tr>
    180       <tr><td class="lineno" valign="top"></td><td class="left">   field-value is "*", the condition is false if the origin server does</td><td> </td><td class="right">   field-value is "*", the condition is false if the origin server does</td><td class="lineno" valign="top"></td></tr>
    181       <tr><td class="lineno" valign="top"></td><td class="left">   not have a current representation for the target resource.  If the</td><td> </td><td class="right">   not have a current representation for the target resource.  If the</td><td class="lineno" valign="top"></td></tr>
    182       <tr><td class="lineno" valign="top"></td><td class="left">   field-value is a list of entity-tags, the condition is false if none</td><td> </td><td class="right">   field-value is a list of entity-tags, the condition is false if none</td><td class="lineno" valign="top"></td></tr>
    183       <tr><td class="lineno" valign="top"></td><td class="left">   of the listed tags match the entity-tag of the selected</td><td> </td><td class="right">   of the listed tags match the entity-tag of the selected</td><td class="lineno" valign="top"></td></tr>
    184       <tr><td class="lineno" valign="top"></td><td class="left">   representation.</td><td> </td><td class="right">   representation.</td><td class="lineno" valign="top"></td></tr>
    185       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    186       <tr><td class="lineno" valign="top"></td><td class="left">   An origin server MUST NOT perform the requested method if a received</td><td> </td><td class="right">   An origin server MUST NOT perform the requested method if a received</td><td class="lineno" valign="top"></td></tr>
    187       <tr><td class="lineno" valign="top"></td><td class="left">   If-Match condition evaluates to false; instead, the origin server</td><td> </td><td class="right">   If-Match condition evaluates to false; instead, the origin server</td><td class="lineno" valign="top"></td></tr>
    188       <tr><td><a name="diff0010" /></td></tr>
    189       <tr><td class="lineno" valign="top"></td><td class="lblock">   MUST respond with <span class="delete">either</span> a) the 412 (Precondition Failed) status code</td><td> </td><td class="rblock">   MUST respond with <span class="insert">either:</span> a) the 412 (Precondition Failed) status</td><td class="lineno" valign="top"></td></tr>
    190       <tr><td class="lineno" valign="top"></td><td class="lblock">   or b) one of the 2xx (Successful) status codes if the origin server</td><td> </td><td class="rblock">   code or b) one of the 2xx (Successful) status codes if the origin</td><td class="lineno" valign="top"></td></tr>
    191       <tr><td class="lineno" valign="top"></td><td class="lblock">   has verified that a state change is being requested and the final</td><td> </td><td class="rblock">   server has verified that a state change is being requested and the</td><td class="lineno" valign="top"></td></tr>
    192       <tr><td class="lineno" valign="top"></td><td class="lblock">   state is already reflected in the current state of the target</td><td> </td><td class="rblock">   final state is already reflected in the current state of the target</td><td class="lineno" valign="top"></td></tr>
    193       <tr><td class="lineno" valign="top"></td><td class="left">   resource (i.e., the change requested by the user agent has already</td><td> </td><td class="right">   resource (i.e., the change requested by the user agent has already</td><td class="lineno" valign="top"></td></tr>
    194       <tr><td class="lineno" valign="top"></td><td class="left">   succeeded, but the user agent might not be aware of it, perhaps</td><td> </td><td class="right">   succeeded, but the user agent might not be aware of it, perhaps</td><td class="lineno" valign="top"></td></tr>
    195       <tr><td class="lineno" valign="top"></td><td class="left">   because the prior response was lost or a compatible change was made</td><td> </td><td class="right">   because the prior response was lost or a compatible change was made</td><td class="lineno" valign="top"></td></tr>
    196       <tr><td class="lineno" valign="top"></td><td class="left">   by some other user agent).  In the latter case, the origin server</td><td> </td><td class="right">   by some other user agent).  In the latter case, the origin server</td><td class="lineno" valign="top"></td></tr>
    197       <tr><td class="lineno" valign="top"></td><td class="left">   MUST NOT send a validator header field in the response unless it can</td><td> </td><td class="right">   MUST NOT send a validator header field in the response unless it can</td><td class="lineno" valign="top"></td></tr>
    198       <tr><td class="lineno" valign="top"></td><td class="left">   verify that the request is a duplicate of an immediately prior change</td><td> </td><td class="right">   verify that the request is a duplicate of an immediately prior change</td><td class="lineno" valign="top"></td></tr>
    199       <tr><td class="lineno" valign="top"></td><td class="left">   made by the same user agent.</td><td> </td><td class="right">   made by the same user agent.</td><td class="lineno" valign="top"></td></tr>
    200       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    201       <tr><td class="lineno" valign="top"></td><td class="left">   The If-Match header field can be ignored by caches and intermediaries</td><td> </td><td class="right">   The If-Match header field can be ignored by caches and intermediaries</td><td class="lineno" valign="top"></td></tr>
    202       <tr><td class="lineno" valign="top"></td><td class="left">   because it is not applicable to a stored response.</td><td> </td><td class="right">   because it is not applicable to a stored response.</td><td class="lineno" valign="top"></td></tr>
    203       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    204       <tr bgcolor="gray" ><td></td><th><a name="part-l5" /><small>skipping to change at</small><em> page 15, line 43</em></th><th> </th><th><a name="part-r5" /><small>skipping to change at</small><em> page 15, line 43</em></th><td></td></tr>
    205       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    206       <tr><td class="lineno" valign="top"></td><td class="left">     If-Modified-Since = HTTP-date</td><td> </td><td class="right">     If-Modified-Since = HTTP-date</td><td class="lineno" valign="top"></td></tr>
    207       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    208       <tr><td class="lineno" valign="top"></td><td class="left">   An example of the field is:</td><td> </td><td class="right">   An example of the field is:</td><td class="lineno" valign="top"></td></tr>
    209       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    210       <tr><td class="lineno" valign="top"></td><td class="left">     If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td> </td><td class="right">     If-Modified-Since: Sat, 29 Oct 1994 19:43:31 GMT</td><td class="lineno" valign="top"></td></tr>
    211       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    212       <tr><td class="lineno" valign="top"></td><td class="left">   A recipient MUST ignore If-Modified-Since if the request contains an</td><td> </td><td class="right">   A recipient MUST ignore If-Modified-Since if the request contains an</td><td class="lineno" valign="top"></td></tr>
    213       <tr><td class="lineno" valign="top"></td><td class="left">   If-None-Match header field; the condition in If-None-Match is</td><td> </td><td class="right">   If-None-Match header field; the condition in If-None-Match is</td><td class="lineno" valign="top"></td></tr>
    214       <tr><td class="lineno" valign="top"></td><td class="left">   considered to be a more accurate replacement for the condition in If-</td><td> </td><td class="right">   considered to be a more accurate replacement for the condition in If-</td><td class="lineno" valign="top"></td></tr>
    215       <tr><td><a name="diff0011" /></td></tr>
    216       <tr><td class="lineno" valign="top"></td><td class="lblock">   Modified-Since<span class="delete">,</span> and the two are only combined for the sake of</td><td> </td><td class="rblock">   Modified-Since and the two are only combined for the sake of</td><td class="lineno" valign="top"></td></tr>
    217       <tr><td class="lineno" valign="top"></td><td class="left">   interoperating with older intermediaries that might not implement If-</td><td> </td><td class="right">   interoperating with older intermediaries that might not implement If-</td><td class="lineno" valign="top"></td></tr>
    218       <tr><td class="lineno" valign="top"></td><td class="left">   None-Match.</td><td> </td><td class="right">   None-Match.</td><td class="lineno" valign="top"></td></tr>
    219       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    220       <tr><td class="lineno" valign="top"></td><td class="left">   A recipient MUST ignore the If-Modified-Since header field if the</td><td> </td><td class="right">   A recipient MUST ignore the If-Modified-Since header field if the</td><td class="lineno" valign="top"></td></tr>
    221       <tr><td class="lineno" valign="top"></td><td class="left">   received field-value is not a valid HTTP-date, or if the request</td><td> </td><td class="right">   received field-value is not a valid HTTP-date, or if the request</td><td class="lineno" valign="top"></td></tr>
    222       <tr><td class="lineno" valign="top"></td><td class="left">   method is neither GET nor HEAD.</td><td> </td><td class="right">   method is neither GET nor HEAD.</td><td class="lineno" valign="top"></td></tr>
    223       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    224       <tr><td class="lineno" valign="top"></td><td class="left">   A recipient MUST interpret an If-Modified-Since field-value's</td><td> </td><td class="right">   A recipient MUST interpret an If-Modified-Since field-value's</td><td class="lineno" valign="top"></td></tr>
    225       <tr><td class="lineno" valign="top"></td><td class="left">   timestamp in terms of the origin server's clock.</td><td> </td><td class="right">   timestamp in terms of the origin server's clock.</td><td class="lineno" valign="top"></td></tr>
    226       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    227       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    228       <tr bgcolor="gray" ><td></td><th><a name="part-l6" /><small>skipping to change at</small><em> page 18, line 28</em></th><th> </th><th><a name="part-r6" /><small>skipping to change at</small><em> page 18, line 28</em></th><td></td></tr>
    229       <tr><td class="lineno" valign="top"></td><td class="left">   The 304 (Not Modified) status code indicates that a conditional GET</td><td> </td><td class="right">   The 304 (Not Modified) status code indicates that a conditional GET</td><td class="lineno" valign="top"></td></tr>
    230       <tr><td class="lineno" valign="top"></td><td class="left">   or HEAD request has been received and would have resulted in a 200</td><td> </td><td class="right">   or HEAD request has been received and would have resulted in a 200</td><td class="lineno" valign="top"></td></tr>
    231       <tr><td class="lineno" valign="top"></td><td class="left">   (OK) response if it were not for the fact that the condition</td><td> </td><td class="right">   (OK) response if it were not for the fact that the condition</td><td class="lineno" valign="top"></td></tr>
    232       <tr><td class="lineno" valign="top"></td><td class="left">   evaluated to false.  In other words, there is no need for the server</td><td> </td><td class="right">   evaluated to false.  In other words, there is no need for the server</td><td class="lineno" valign="top"></td></tr>
    233       <tr><td class="lineno" valign="top"></td><td class="left">   to transfer a representation of the target resource because the</td><td> </td><td class="right">   to transfer a representation of the target resource because the</td><td class="lineno" valign="top"></td></tr>
    234       <tr><td class="lineno" valign="top"></td><td class="left">   request indicates that the client, which made the request</td><td> </td><td class="right">   request indicates that the client, which made the request</td><td class="lineno" valign="top"></td></tr>
    235       <tr><td class="lineno" valign="top"></td><td class="left">   conditional, already has a valid representation; the server is</td><td> </td><td class="right">   conditional, already has a valid representation; the server is</td><td class="lineno" valign="top"></td></tr>
    236       <tr><td class="lineno" valign="top"></td><td class="left">   therefore redirecting the client to make use of that stored</td><td> </td><td class="right">   therefore redirecting the client to make use of that stored</td><td class="lineno" valign="top"></td></tr>
    237       <tr><td class="lineno" valign="top"></td><td class="left">   representation as if it were the payload of a 200 (OK) response.</td><td> </td><td class="right">   representation as if it were the payload of a 200 (OK) response.</td><td class="lineno" valign="top"></td></tr>
    238       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    239       <tr><td><a name="diff0012" /></td></tr>
    240       <tr><td class="lineno" valign="top"></td><td class="lblock">   The server generating a 304 response MUST generate any of the</td><td> </td><td class="rblock">   The server generating a 304 <span class="insert">(Not Modified)</span> response MUST generate any</td><td class="lineno" valign="top"></td></tr>
    241       <tr><td class="lineno" valign="top"></td><td class="lblock">   following header fields that would have been sent in a 200 (OK)</td><td> </td><td class="rblock">   of the following header fields that would have been sent in a 200</td><td class="lineno" valign="top"></td></tr>
    242       <tr><td class="lineno" valign="top"></td><td class="lblock">   response to the same request: Cache-Control, Content-Location, Date,</td><td> </td><td class="rblock">   (OK) response to the same request: Cache-Control, Content-Location,</td><td class="lineno" valign="top"></td></tr>
    243       <tr><td class="lineno" valign="top"></td><td class="lblock">   ETag, Expires, and Vary.</td><td> </td><td class="rblock">   Date, ETag, Expires, and Vary.</td><td class="lineno" valign="top"></td></tr>
    244       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    245       <tr><td><a name="diff0013" /></td></tr>
    246       <tr><td class="lineno" valign="top"></td><td class="lblock">   Since the goal of a 304 response is to minimize information transfer</td><td> </td><td class="rblock">   Since the goal of a 304 <span class="insert">(Not Modified)</span> response is to minimize</td><td class="lineno" valign="top"></td></tr>
    247       <tr><td class="lineno" valign="top"></td><td class="lblock">   when the recipient already has one or more cached representations, a</td><td> </td><td class="rblock">   information transfer when the recipient already has one or more</td><td class="lineno" valign="top"></td></tr>
    248       <tr><td class="lineno" valign="top"></td><td class="lblock">   sender SHOULD NOT generate representation metadata other than the</td><td> </td><td class="rblock">   cached representations, a sender SHOULD NOT generate representation</td><td class="lineno" valign="top"></td></tr>
    249       <tr><td class="lineno" valign="top"></td><td class="lblock">   above listed fields unless said metadata exists for the purpose of</td><td> </td><td class="rblock">   metadata other than the above listed fields unless said metadata</td><td class="lineno" valign="top"></td></tr>
    250       <tr><td class="lineno" valign="top"></td><td class="lblock">   guiding cache updates (e.g., Last-Modified might be useful if the</td><td> </td><td class="rblock">   exists for the purpose of guiding cache updates (e.g., Last-Modified</td><td class="lineno" valign="top"></td></tr>
    251       <tr><td class="lineno" valign="top"></td><td class="lblock">   response does not have an ETag field).</td><td> </td><td class="rblock">   might be useful if the response does not have an ETag field).</td><td class="lineno" valign="top"></td></tr>
    252       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    253       <tr><td><a name="diff0014" /></td></tr>
    254       <tr><td class="lineno" valign="top"></td><td class="lblock">   Requirements on a cache that receives a 304 response are defined in</td><td> </td><td class="rblock">   Requirements on a cache that receives a 304 <span class="insert">(Not Modified)</span> response</td><td class="lineno" valign="top"></td></tr>
    255       <tr><td class="lineno" valign="top"></td><td class="lblock">   Section 4.3.4 of [RFC7234].  If the conditional request originated</td><td> </td><td class="rblock">   are defined in Section 4.3.4 of [RFC7234].  If the conditional</td><td class="lineno" valign="top"></td></tr>
    256       <tr><td class="lineno" valign="top"></td><td class="lblock">   with an outbound client, such as a user agent with its own cache</td><td> </td><td class="rblock">   request originated with an outbound client, such as a user agent with</td><td class="lineno" valign="top"></td></tr>
    257       <tr><td class="lineno" valign="top"></td><td class="lblock">   sending a conditional GET to a shared proxy, then the proxy SHOULD</td><td> </td><td class="rblock">   its own cache sending a conditional GET to a shared proxy, then the</td><td class="lineno" valign="top"></td></tr>
    258       <tr><td class="lineno" valign="top"></td><td class="lblock">   forward the 304 response to that client.</td><td> </td><td class="rblock">   proxy SHOULD forward the 304 <span class="insert">(Not Modified)</span> response to that client.</td><td class="lineno" valign="top"></td></tr>
    259       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    260       <tr><td><a name="diff0015" /></td></tr>
    261       <tr><td class="lineno" valign="top"></td><td class="lblock">   A 304 response cannot contain a message-body; it is always terminated</td><td> </td><td class="rblock">   A 304 <span class="insert">(Not Modified)</span> response cannot contain a message-body; it is</td><td class="lineno" valign="top"></td></tr>
    262       <tr><td class="lineno" valign="top"></td><td class="lblock">   by the first empty line after the header fields.</td><td> </td><td class="rblock">   always terminated by the first empty line after the header fields.</td><td class="lineno" valign="top"></td></tr>
    263       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    264       <tr><td class="lineno" valign="top"></td><td class="left">4.2.  412 Precondition Failed</td><td> </td><td class="right">4.2.  412 Precondition Failed</td><td class="lineno" valign="top"></td></tr>
    265       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    266       <tr><td class="lineno" valign="top"></td><td class="left">   The 412 (Precondition Failed) status code indicates that one or more</td><td> </td><td class="right">   The 412 (Precondition Failed) status code indicates that one or more</td><td class="lineno" valign="top"></td></tr>
    267       <tr><td class="lineno" valign="top"></td><td class="left">   conditions given in the request header fields evaluated to false when</td><td> </td><td class="right">   conditions given in the request header fields evaluated to false when</td><td class="lineno" valign="top"></td></tr>
    268       <tr><td class="lineno" valign="top"></td><td class="left">   tested on the server.  This response code allows the client to place</td><td> </td><td class="right">   tested on the server.  This response code allows the client to place</td><td class="lineno" valign="top"></td></tr>
    269       <tr><td class="lineno" valign="top"></td><td class="left">   preconditions on the current resource state (its current</td><td> </td><td class="right">   preconditions on the current resource state (its current</td><td class="lineno" valign="top"></td></tr>
    270       <tr><td class="lineno" valign="top"></td><td class="left">   representations and metadata) and, thus, prevent the request method</td><td> </td><td class="right">   representations and metadata) and, thus, prevent the request method</td><td class="lineno" valign="top"></td></tr>
    271       <tr><td class="lineno" valign="top"></td><td class="left">   from being applied if the target resource is in an unexpected state.</td><td> </td><td class="right">   from being applied if the target resource is in an unexpected state.</td><td class="lineno" valign="top"></td></tr>
    272       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    273       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    274       <tr bgcolor="gray" ><td></td><th><a name="part-l7" /><small>skipping to change at</small><em> page 21, line 23</em></th><th> </th><th><a name="part-r7" /><small>skipping to change at</small><em> page 21, line 23</em></th><td></td></tr>
    275       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    276       <tr><td class="lineno" valign="top"></td><td class="left">   Any extension to HTTP/1.1 that defines additional conditional request</td><td> </td><td class="right">   Any extension to HTTP/1.1 that defines additional conditional request</td><td class="lineno" valign="top"></td></tr>
    277       <tr><td class="lineno" valign="top"></td><td class="left">   header fields ought to define its own expectations regarding the</td><td> </td><td class="right">   header fields ought to define its own expectations regarding the</td><td class="lineno" valign="top"></td></tr>
    278       <tr><td class="lineno" valign="top"></td><td class="left">   order for evaluating such fields in relation to those defined in this</td><td> </td><td class="right">   order for evaluating such fields in relation to those defined in this</td><td class="lineno" valign="top"></td></tr>
    279       <tr><td class="lineno" valign="top"></td><td class="left">   document and other conditionals that might be found in practice.</td><td> </td><td class="right">   document and other conditionals that might be found in practice.</td><td class="lineno" valign="top"></td></tr>
    280       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    281       <tr><td class="lineno" valign="top"></td><td class="left">7.  IANA Considerations</td><td> </td><td class="right">7.  IANA Considerations</td><td class="lineno" valign="top"></td></tr>
    282       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    283       <tr><td class="lineno" valign="top"></td><td class="left">7.1.  Status Code Registration</td><td> </td><td class="right">7.1.  Status Code Registration</td><td class="lineno" valign="top"></td></tr>
    284       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    285       <tr><td><a name="diff0016" /></td></tr>
    286       <tr><td class="lineno" valign="top"></td><td class="lblock">   The <span class="delete">"Hypertext Transfer Protocol (HTTP)</span> Status <span class="delete">Code Registry"</span> located</td><td> </td><td class="rblock">   The <span class="insert">"HTTP</span> Status <span class="insert">Codes" registry</span> located at</td><td class="lineno" valign="top"></td></tr>
    287       <tr><td class="lineno" valign="top"></td><td class="lblock">   at &lt;http://www.iana.org/assignments/http-status-codes&gt; has been</td><td> </td><td class="rblock">   &lt;http://www.iana.org/assignments/http-status-codes&gt; has been updated</td><td class="lineno" valign="top"></td></tr>
    288       <tr><td class="lineno" valign="top"></td><td class="lblock">   updated with the registrations below:</td><td> </td><td class="rblock">   with the registrations below:</td><td class="lineno" valign="top"></td></tr>
    289       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    290       <tr><td class="lineno" valign="top"></td><td class="left">   +-------+---------------------+-------------+</td><td> </td><td class="right">   +-------+---------------------+-------------+</td><td class="lineno" valign="top"></td></tr>
    291       <tr><td class="lineno" valign="top"></td><td class="left">   | Value | Description         | Reference   |</td><td> </td><td class="right">   | Value | Description         | Reference   |</td><td class="lineno" valign="top"></td></tr>
    292       <tr><td class="lineno" valign="top"></td><td class="left">   +-------+---------------------+-------------+</td><td> </td><td class="right">   +-------+---------------------+-------------+</td><td class="lineno" valign="top"></td></tr>
    293       <tr><td class="lineno" valign="top"></td><td class="left">   | 304   | Not Modified        | Section 4.1 |</td><td> </td><td class="right">   | 304   | Not Modified        | Section 4.1 |</td><td class="lineno" valign="top"></td></tr>
    294       <tr><td class="lineno" valign="top"></td><td class="left">   | 412   | Precondition Failed | Section 4.2 |</td><td> </td><td class="right">   | 412   | Precondition Failed | Section 4.2 |</td><td class="lineno" valign="top"></td></tr>
    295       <tr><td class="lineno" valign="top"></td><td class="left">   +-------+---------------------+-------------+</td><td> </td><td class="right">   +-------+---------------------+-------------+</td><td class="lineno" valign="top"></td></tr>
    296       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    297       <tr><td class="lineno" valign="top"></td><td class="left">7.2.  Header Field Registration</td><td> </td><td class="right">7.2.  Header Field Registration</td><td class="lineno" valign="top"></td></tr>
    298       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    299       <tr><td><a name="diff0017" /></td></tr>
    300       <tr><td class="lineno" valign="top"></td><td class="lblock">   HTTP header fields are registered within the <span class="delete">"Message Headers"</span></td><td> </td><td class="rblock">   HTTP header fields are registered within the <span class="insert">Message Header Field</span></td><td class="lineno" valign="top"></td></tr>
    301       <tr><td class="lineno" valign="top"></td><td class="lblock"><span class="delete">   registry</span> maintained at</td><td> </td><td class="rblock"><span class="insert">   Registry</span> maintained at</td><td class="lineno" valign="top"></td></tr>
    302       <tr><td class="lineno" valign="top"></td><td class="left">   &lt;http://www.iana.org/assignments/message-headers/&gt;.</td><td> </td><td class="right">   &lt;http://www.iana.org/assignments/message-headers/&gt;.</td><td class="lineno" valign="top"></td></tr>
    303       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    304       <tr><td class="lineno" valign="top"></td><td class="left">   This document defines the following HTTP header fields, so their</td><td> </td><td class="right">   This document defines the following HTTP header fields, so their</td><td class="lineno" valign="top"></td></tr>
    305       <tr><td class="lineno" valign="top"></td><td class="left">   associated registry entries have been updated according to the</td><td> </td><td class="right">   associated registry entries have been updated according to the</td><td class="lineno" valign="top"></td></tr>
    306       <tr><td class="lineno" valign="top"></td><td class="left">   permanent registrations below (see [BCP90]):</td><td> </td><td class="right">   permanent registrations below (see [BCP90]):</td><td class="lineno" valign="top"></td></tr>
    307       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    308       <tr><td class="lineno" valign="top"></td><td class="left">   +---------------------+----------+----------+-------------+</td><td> </td><td class="right">   +---------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr>
    309       <tr><td class="lineno" valign="top"></td><td class="left">   | Header Field Name   | Protocol | Status   | Reference   |</td><td> </td><td class="right">   | Header Field Name   | Protocol | Status   | Reference   |</td><td class="lineno" valign="top"></td></tr>
    310       <tr><td class="lineno" valign="top"></td><td class="left">   +---------------------+----------+----------+-------------+</td><td> </td><td class="right">   +---------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr>
    311       <tr><td class="lineno" valign="top"></td><td class="left">   | ETag                | http     | standard | Section 2.3 |</td><td> </td><td class="right">   | ETag                | http     | standard | Section 2.3 |</td><td class="lineno" valign="top"></td></tr>
    312       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    313       <tr bgcolor="gray" ><td></td><th><a name="part-l8" /><small>skipping to change at</small><em> page 22, line 24</em></th><th> </th><th><a name="part-r8" /><small>skipping to change at</small><em> page 22, line 24</em></th><td></td></tr>
    314       <tr><td class="lineno" valign="top"></td><td class="left">   +---------------------+----------+----------+-------------+</td><td> </td><td class="right">   +---------------------+----------+----------+-------------+</td><td class="lineno" valign="top"></td></tr>
    315       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    316       <tr><td class="lineno" valign="top"></td><td class="left">   The change controller is: "IETF (iesg@ietf.org) - Internet</td><td> </td><td class="right">   The change controller is: "IETF (iesg@ietf.org) - Internet</td><td class="lineno" valign="top"></td></tr>
    317       <tr><td class="lineno" valign="top"></td><td class="left">   Engineering Task Force".</td><td> </td><td class="right">   Engineering Task Force".</td><td class="lineno" valign="top"></td></tr>
    318       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    319       <tr><td class="lineno" valign="top"></td><td class="left">8.  Security Considerations</td><td> </td><td class="right">8.  Security Considerations</td><td class="lineno" valign="top"></td></tr>
    320       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    321       <tr><td class="lineno" valign="top"></td><td class="left">   This section is meant to inform developers, information providers,</td><td> </td><td class="right">   This section is meant to inform developers, information providers,</td><td class="lineno" valign="top"></td></tr>
    322       <tr><td class="lineno" valign="top"></td><td class="left">   and users of known security concerns specific to the HTTP conditional</td><td> </td><td class="right">   and users of known security concerns specific to the HTTP conditional</td><td class="lineno" valign="top"></td></tr>
    323       <tr><td class="lineno" valign="top"></td><td class="left">   request mechanisms.  More general security considerations are</td><td> </td><td class="right">   request mechanisms.  More general security considerations are</td><td class="lineno" valign="top"></td></tr>
    324       <tr><td><a name="diff0018" /></td></tr>
    325       <tr><td class="lineno" valign="top"></td><td class="lblock">   addressed in HTTP <span class="delete">"Message Syntax and Routing"</span> [RFC7230] and</td><td> </td><td class="rblock">   addressed in <span class="insert">the</span> HTTP <span class="insert">messaging</span> [RFC7230] and <span class="insert">semantics [RFC7231]</span></td><td class="lineno" valign="top"></td></tr>
    326       <tr><td class="lineno" valign="top"></td><td class="lblock">   <span class="delete">"Semantics and Content" [RFC7231].</span></td><td> </td><td class="rblock"><span class="insert">   documents.</span></td><td class="lineno" valign="top"></td></tr>
    327       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    328       <tr><td class="lineno" valign="top"></td><td class="left">   The validators defined by this specification are not intended to</td><td> </td><td class="right">   The validators defined by this specification are not intended to</td><td class="lineno" valign="top"></td></tr>
    329       <tr><td class="lineno" valign="top"></td><td class="left">   ensure the validity of a representation, guard against malicious</td><td> </td><td class="right">   ensure the validity of a representation, guard against malicious</td><td class="lineno" valign="top"></td></tr>
    330       <tr><td class="lineno" valign="top"></td><td class="left">   changes, or detect man-in-the-middle attacks.  At best, they enable</td><td> </td><td class="right">   changes, or detect man-in-the-middle attacks.  At best, they enable</td><td class="lineno" valign="top"></td></tr>
    331       <tr><td class="lineno" valign="top"></td><td class="left">   more efficient cache updates and optimistic concurrent writes when</td><td> </td><td class="right">   more efficient cache updates and optimistic concurrent writes when</td><td class="lineno" valign="top"></td></tr>
    332       <tr><td class="lineno" valign="top"></td><td class="left">   all participants are behaving nicely.  At worst, the conditions will</td><td> </td><td class="right">   all participants are behaving nicely.  At worst, the conditions will</td><td class="lineno" valign="top"></td></tr>
    333       <tr><td class="lineno" valign="top"></td><td class="left">   fail and the client will receive a response that is no more harmful</td><td> </td><td class="right">   fail and the client will receive a response that is no more harmful</td><td class="lineno" valign="top"></td></tr>
    334       <tr><td class="lineno" valign="top"></td><td class="left">   than an HTTP exchange without conditional requests.</td><td> </td><td class="right">   than an HTTP exchange without conditional requests.</td><td class="lineno" valign="top"></td></tr>
    335       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    336       <tr><td class="lineno" valign="top"></td><td class="left">   An entity-tag can be abused in ways that create privacy risks.  For</td><td> </td><td class="right">   An entity-tag can be abused in ways that create privacy risks.  For</td><td class="lineno" valign="top"></td></tr>
    337       <tr><td class="lineno"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno"></td></tr>
    338       <tr bgcolor="gray" ><td></td><th><a name="part-l9" /><small>skipping to change at</small><em> page 23, line 14</em></th><th> </th><th><a name="part-r9" /><small>skipping to change at</small><em> page 23, line 14</em></th><td></td></tr>
     106      <tr bgcolor="gray" ><td></td><th><a name="part-l2" /><small>skipping to change at</small><em> page 23, line 14</em></th><th> </th><th><a name="part-r2" /><small>skipping to change at</small><em> page 23, line 14</em></th><td></td></tr>
    339107      <tr><td class="lineno" valign="top"></td><td class="left">10.1.  Normative References</td><td> </td><td class="right">10.1.  Normative References</td><td class="lineno" valign="top"></td></tr>
    340108      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
     
    347115      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC7230]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td> </td><td class="right">   [RFC7230]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td class="lineno" valign="top"></td></tr>
    348116      <tr><td class="lineno" valign="top"></td><td class="left">              Protocol (HTTP/1.1): Message Syntax and Routing",</td><td> </td><td class="right">              Protocol (HTTP/1.1): Message Syntax and Routing",</td><td class="lineno" valign="top"></td></tr>
    349       <tr><td><a name="diff0019" /></td></tr>
     117      <tr><td><a name="diff0007" /></td></tr>
    350118      <tr><td class="lineno" valign="top"></td><td class="lblock">              <span class="delete">draft-ietf-httpbis-p1-messaging-latest (work in progress),</span></td><td> </td><td class="rblock">              <span class="insert">RFC 7230,</span> May 2014.</td><td class="lineno" valign="top"></td></tr>
    351119      <tr><td class="lineno" valign="top"></td><td class="lblock">              May 2014.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
    352120      <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    353121      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC7231]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td> </td><td class="right">   [RFC7231]  Fielding, R., Ed. and J. Reschke, Ed., "Hypertext Transfer</td><td class="lineno" valign="top"></td></tr>
    354       <tr><td><a name="diff0020" /></td></tr>
     122      <tr><td><a name="diff0008" /></td></tr>
    355123      <tr><td class="lineno" valign="top"></td><td class="lblock">              Protocol (HTTP/1.1): Semantics and Content",</td><td> </td><td class="rblock">              Protocol (HTTP/1.1): Semantics and Content", <span class="insert">RFC 7231,</span></td><td class="lineno" valign="top"></td></tr>
    356124      <tr><td class="lineno" valign="top"></td><td class="lblock">              <span class="delete">draft-ietf-httpbis-p2-semantics-latest (work in progress),</span></td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
     
    359127      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC7233]  Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td> </td><td class="right">   [RFC7233]  Fielding, R., Ed., Lafon, Y., Ed., and J. Reschke, Ed.,</td><td class="lineno" valign="top"></td></tr>
    360128      <tr><td class="lineno" valign="top"></td><td class="left">              "Hypertext Transfer Protocol (HTTP/1.1): Range Requests",</td><td> </td><td class="right">              "Hypertext Transfer Protocol (HTTP/1.1): Range Requests",</td><td class="lineno" valign="top"></td></tr>
    361       <tr><td><a name="diff0021" /></td></tr>
     129      <tr><td><a name="diff0009" /></td></tr>
    362130      <tr><td class="lineno" valign="top"></td><td class="lblock">              <span class="delete">draft-ietf-httpbis-p5-range-latest (work in progress),</span></td><td> </td><td class="rblock">              <span class="insert">RFC 7233,</span> May 2014.</td><td class="lineno" valign="top"></td></tr>
    363131      <tr><td class="lineno" valign="top"></td><td class="lblock">              May 2014.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
     
    365133      <tr><td class="lineno" valign="top"></td><td class="left">   [RFC7234]  Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,</td><td> </td><td class="right">   [RFC7234]  Fielding, R., Ed., Nottingham, M., Ed., and J. Reschke,</td><td class="lineno" valign="top"></td></tr>
    366134      <tr><td class="lineno" valign="top"></td><td class="left">              Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching",</td><td> </td><td class="right">              Ed., "Hypertext Transfer Protocol (HTTP/1.1): Caching",</td><td class="lineno" valign="top"></td></tr>
    367       <tr><td><a name="diff0022" /></td></tr>
     135      <tr><td><a name="diff0010" /></td></tr>
    368136      <tr><td class="lineno" valign="top"></td><td class="lblock">              <span class="delete">draft-ietf-httpbis-p6-cache-latest (work in progress),</span></td><td> </td><td class="rblock">              <span class="insert">RFC 7234,</span> May 2014.</td><td class="lineno" valign="top"></td></tr>
    369137      <tr><td class="lineno" valign="top"></td><td class="lblock">              May 2014.</td><td> </td><td class="rblock"></td><td class="lineno" valign="top"></td></tr>
     
    378146      <tr><td class="lineno" valign="top"></td><td class="left">              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext</td><td> </td><td class="right">              Masinter, L., Leach, P., and T. Berners-Lee, "Hypertext</td><td class="lineno" valign="top"></td></tr>
    379147      <tr><td class="lineno" valign="top"></td><td class="left">              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.</td><td> </td><td class="right">              Transfer Protocol -- HTTP/1.1", RFC 2616, June 1999.</td><td class="lineno" valign="top"></td></tr>
    380       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    381       <tr><td class="lineno" valign="top"></td><td class="left">   [RFC4918]  Dusseault, L., Ed., "HTTP Extensions for Web Distributed</td><td> </td><td class="right">   [RFC4918]  Dusseault, L., Ed., "HTTP Extensions for Web Distributed</td><td class="lineno" valign="top"></td></tr>
    382       <tr><td class="lineno" valign="top"></td><td class="left">              Authoring and Versioning (WebDAV)", RFC 4918, June 2007.</td><td> </td><td class="right">              Authoring and Versioning (WebDAV)", RFC 4918, June 2007.</td><td class="lineno" valign="top"></td></tr>
    383       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    384       <tr><td class="lineno" valign="top"></td><td class="left">Appendix A.  Changes from RFC 2616</td><td> </td><td class="right">Appendix A.  Changes from RFC 2616</td><td class="lineno" valign="top"></td></tr>
    385       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    386       <tr><td><a name="diff0023" /></td></tr>
    387       <tr><td class="lineno" valign="top"></td><td class="lblock">   The definition of validator weakness has been expanded and <span class="delete">clarified.</span></td><td> </td><td class="rblock">   The definition of validator weakness has been expanded and <span class="insert">clarified</span></td><td class="lineno" valign="top"></td></tr>
    388       <tr><td class="lineno" valign="top"></td><td class="lblock">   (Section <span class="delete">2.1)</span></td><td> </td><td class="rblock">   (Section <span class="insert">2.1).</span></td><td class="lineno" valign="top"></td></tr>
    389       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    390       <tr><td class="lineno" valign="top"></td><td class="left">   Weak entity-tags are now allowed in all requests except range</td><td> </td><td class="right">   Weak entity-tags are now allowed in all requests except range</td><td class="lineno" valign="top"></td></tr>
    391       <tr><td><a name="diff0024" /></td></tr>
    392       <tr><td class="lineno" valign="top"></td><td class="lblock">   requests.  (Sections 2.1 and <span class="delete">3.2)</span></td><td> </td><td class="rblock">   requests.  (Sections 2.1 and <span class="insert">3.2.)</span></td><td class="lineno" valign="top"></td></tr>
    393       <tr><td class="lineno" valign="top"></td><td class="lblock"></td><td> </td><td class="rblock">                                                                         </td><td class="lineno" valign="top"></td></tr>
    394       <tr><td class="lineno" valign="top"></td><td class="left">   The ETag header field ABNF has been changed to not use quoted-string,</td><td> </td><td class="right">   The ETag header field ABNF has been changed to not use quoted-string,</td><td class="lineno" valign="top"></td></tr>
    395       <tr><td><a name="diff0025" /></td></tr>
    396       <tr><td class="lineno" valign="top"></td><td class="lblock">   thus avoiding escaping issues<span class="delete">.  (Section 2.3)</span></td><td> </td><td class="rblock">   thus avoiding escaping issues<span class="insert"> (Section 2.3).</span></td><td class="lineno" valign="top"></td></tr>
    397       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    398       <tr><td class="lineno" valign="top"></td><td class="left">   ETag is defined to provide an entity tag for the selected</td><td> </td><td class="right">   ETag is defined to provide an entity tag for the selected</td><td class="lineno" valign="top"></td></tr>
    399       <tr><td class="lineno" valign="top"></td><td class="left">   representation, thereby clarifying what it applies to in various</td><td> </td><td class="right">   representation, thereby clarifying what it applies to in various</td><td class="lineno" valign="top"></td></tr>
    400       <tr><td><a name="diff0026" /></td></tr>
    401       <tr><td class="lineno" valign="top"></td><td class="lblock">   situations (such as a PUT response)<span class="delete">.  (Section 2.3)</span></td><td> </td><td class="rblock">   situations (such as a PUT response)<span class="insert"> (Section 2.3).</span></td><td class="lineno" valign="top"></td></tr>
    402       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    403       <tr><td class="lineno" valign="top"></td><td class="left">   The precedence for evaluation of conditional requests has been</td><td> </td><td class="right">   The precedence for evaluation of conditional requests has been</td><td class="lineno" valign="top"></td></tr>
    404       <tr><td><a name="diff0027" /></td></tr>
    405       <tr><td class="lineno" valign="top"></td><td class="lblock">   defined<span class="delete">.  (Section 6)</span></td><td> </td><td class="rblock">   defined<span class="insert"> (Section 6).</span></td><td class="lineno" valign="top"></td></tr>
    406       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    407       <tr><td class="lineno" valign="top"></td><td class="left">Appendix B.  Imported ABNF</td><td> </td><td class="right">Appendix B.  Imported ABNF</td><td class="lineno" valign="top"></td></tr>
    408       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    409       <tr><td class="lineno" valign="top"></td><td class="left">   The following core rules are included by reference, as defined in</td><td> </td><td class="right">   The following core rules are included by reference, as defined in</td><td class="lineno" valign="top"></td></tr>
    410       <tr><td class="lineno" valign="top"></td><td class="left">   Appendix B.1 of [RFC5234]: ALPHA (letters), CR (carriage return),</td><td> </td><td class="right">   Appendix B.1 of [RFC5234]: ALPHA (letters), CR (carriage return),</td><td class="lineno" valign="top"></td></tr>
    411       <tr><td class="lineno" valign="top"></td><td class="left">   CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double</td><td> </td><td class="right">   CRLF (CR LF), CTL (controls), DIGIT (decimal 0-9), DQUOTE (double</td><td class="lineno" valign="top"></td></tr>
    412       <tr><td class="lineno" valign="top"></td><td class="left">   quote), HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any</td><td> </td><td class="right">   quote), HEXDIG (hexadecimal 0-9/A-F/a-f), LF (line feed), OCTET (any</td><td class="lineno" valign="top"></td></tr>
    413       <tr><td class="lineno" valign="top"></td><td class="left">   8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII</td><td> </td><td class="right">   8-bit sequence of data), SP (space), and VCHAR (any visible US-ASCII</td><td class="lineno" valign="top"></td></tr>
    414       <tr><td class="lineno" valign="top"></td><td class="left">   character).</td><td> </td><td class="right">   character).</td><td class="lineno" valign="top"></td></tr>
    415       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    416       <tr><td class="lineno" valign="top"></td><td class="left">   The rules below are defined in [RFC7230]:</td><td> </td><td class="right">   The rules below are defined in [RFC7230]:</td><td class="lineno" valign="top"></td></tr>
    417       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    418       <tr><td><a name="diff0028" /></td></tr>
    419       <tr><td class="lineno" valign="top"></td><td class="lblock">     OWS           = &lt;OWS, <span class="delete">see</span> [RFC7230], Section 3.2.3&gt;</td><td> </td><td class="rblock">     OWS           = &lt;OWS, <span class="insert">defined in</span> [RFC7230], Section 3.2.3&gt;</td><td class="lineno" valign="top"></td></tr>
    420       <tr><td class="lineno" valign="top"></td><td class="lblock">     obs-text      = &lt;obs-text, <span class="delete">see</span> [RFC7230], Section 3.2.6&gt;</td><td> </td><td class="rblock">     obs-text      = &lt;obs-text, <span class="insert">defined in</span> [RFC7230], Section 3.2.6&gt;</td><td class="lineno" valign="top"></td></tr>
    421       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    422       <tr><td><a name="diff0029" /></td></tr>
    423       <tr><td class="lineno" valign="top"></td><td class="lblock">   The rule<span class="delete">s below are defined in other parts</span>:</td><td> </td><td class="rblock">   The rule<span class="insert"> below is defined in [RFC7231]</span>:</td><td class="lineno" valign="top"></td></tr>
    424       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    425       <tr><td><a name="diff0030" /></td></tr>
    426       <tr><td class="lineno" valign="top"></td><td class="lblock">     HTTP-date     = &lt;HTTP-date, <span class="delete">see</span> [RFC7231], Section 7.1.1.1&gt;</td><td> </td><td class="rblock">     HTTP-date     = &lt;HTTP-date, <span class="insert">defined in</span> [RFC7231], Section 7.1.1.1&gt;</td><td class="lineno" valign="top"></td></tr>
    427       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    428       <tr><td class="lineno" valign="top"></td><td class="left">Appendix C.  Collected ABNF</td><td> </td><td class="right">Appendix C.  Collected ABNF</td><td class="lineno" valign="top"></td></tr>
    429       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    430       <tr><td class="lineno" valign="top"></td><td class="left">   In the collected ABNF below, list rules are expanded as per Section</td><td> </td><td class="right">   In the collected ABNF below, list rules are expanded as per Section</td><td class="lineno" valign="top"></td></tr>
    431       <tr><td class="lineno" valign="top"></td><td class="left">   1.2 of [RFC7230].</td><td> </td><td class="right">   1.2 of [RFC7230].</td><td class="lineno" valign="top"></td></tr>
    432       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    433       <tr><td class="lineno" valign="top"></td><td class="left">   ETag = entity-tag</td><td> </td><td class="right">   ETag = entity-tag</td><td class="lineno" valign="top"></td></tr>
    434       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    435       <tr><td><a name="diff0031" /></td></tr>
    436       <tr><td class="lineno" valign="top"></td><td class="lblock">   HTTP-date = &lt;HTTP-date, <span class="delete">see</span> [RFC7231], Section 7.1.1.1&gt;</td><td> </td><td class="rblock">   HTTP-date = &lt;HTTP-date, <span class="insert">defined in</span> [RFC7231], Section 7.1.1.1&gt;</td><td class="lineno" valign="top"></td></tr>
    437       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    438       <tr><td class="lineno" valign="top"></td><td class="left">   If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS</td><td> </td><td class="right">   If-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS</td><td class="lineno" valign="top"></td></tr>
    439       <tr><td class="lineno" valign="top"></td><td class="left">    entity-tag ] ) )</td><td> </td><td class="right">    entity-tag ] ) )</td><td class="lineno" valign="top"></td></tr>
    440       <tr><td class="lineno" valign="top"></td><td class="left">   If-Modified-Since = HTTP-date</td><td> </td><td class="right">   If-Modified-Since = HTTP-date</td><td class="lineno" valign="top"></td></tr>
    441       <tr><td class="lineno" valign="top"></td><td class="left">   If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS</td><td> </td><td class="right">   If-None-Match = "*" / ( *( "," OWS ) entity-tag *( OWS "," [ OWS</td><td class="lineno" valign="top"></td></tr>
    442       <tr><td class="lineno" valign="top"></td><td class="left">    entity-tag ] ) )</td><td> </td><td class="right">    entity-tag ] ) )</td><td class="lineno" valign="top"></td></tr>
    443       <tr><td class="lineno" valign="top"></td><td class="left">   If-Unmodified-Since = HTTP-date</td><td> </td><td class="right">   If-Unmodified-Since = HTTP-date</td><td class="lineno" valign="top"></td></tr>
    444       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    445       <tr><td class="lineno" valign="top"></td><td class="left">   Last-Modified = HTTP-date</td><td> </td><td class="right">   Last-Modified = HTTP-date</td><td class="lineno" valign="top"></td></tr>
    446       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    447       <tr><td><a name="diff0032" /></td></tr>
    448       <tr><td class="lineno" valign="top"></td><td class="lblock">   OWS = &lt;OWS, <span class="delete">see</span> [RFC7230], Section 3.2.3&gt;</td><td> </td><td class="rblock">   OWS = &lt;OWS, <span class="insert">defined in</span> [RFC7230], Section 3.2.3&gt;</td><td class="lineno" valign="top"></td></tr>
    449       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    450       <tr><td class="lineno" valign="top"></td><td class="left">   entity-tag = [ weak ] opaque-tag</td><td> </td><td class="right">   entity-tag = [ weak ] opaque-tag</td><td class="lineno" valign="top"></td></tr>
    451       <tr><td class="lineno" valign="top"></td><td class="left">   etagc = "!" / %x23-7E ; '#'-'~'</td><td> </td><td class="right">   etagc = "!" / %x23-7E ; '#'-'~'</td><td class="lineno" valign="top"></td></tr>
    452       <tr><td class="lineno" valign="top"></td><td class="left">    / obs-text</td><td> </td><td class="right">    / obs-text</td><td class="lineno" valign="top"></td></tr>
    453       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    454       <tr><td><a name="diff0033" /></td></tr>
    455       <tr><td class="lineno" valign="top"></td><td class="lblock">   obs-text = &lt;obs-text, <span class="delete">see</span> [RFC7230], Section 3.2.6&gt;</td><td> </td><td class="rblock">   obs-text = &lt;obs-text, <span class="insert">defined in</span> [RFC7230], Section 3.2.6&gt;</td><td class="lineno" valign="top"></td></tr>
    456       <tr><td class="lineno" valign="top"></td><td class="left">   opaque-tag = DQUOTE *etagc DQUOTE</td><td> </td><td class="right">   opaque-tag = DQUOTE *etagc DQUOTE</td><td class="lineno" valign="top"></td></tr>
    457       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    458       <tr><td class="lineno" valign="top"></td><td class="left">   weak = %x57.2F ; W/</td><td> </td><td class="right">   weak = %x57.2F ; W/</td><td class="lineno" valign="top"></td></tr>
    459       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    460       <tr><td class="lineno" valign="top"></td><td class="left">Index</td><td> </td><td class="right">Index</td><td class="lineno" valign="top"></td></tr>
    461       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    462       <tr><td class="lineno" valign="top"></td><td class="left">   3</td><td> </td><td class="right">   3</td><td class="lineno" valign="top"></td></tr>
    463       <tr><td class="lineno" valign="top"></td><td class="left">      304 Not Modified (status code)  18</td><td> </td><td class="right">      304 Not Modified (status code)  18</td><td class="lineno" valign="top"></td></tr>
    464       <tr><td class="lineno" valign="top"></td><td class="left"></td><td> </td><td class="right"></td><td class="lineno" valign="top"></td></tr>
    465       <tr><td class="lineno" valign="top"></td><td class="left">   4</td><td> </td><td class="right">   4</td><td class="lineno" valign="top"></td></tr>
    466148
    467149     <tr><td></td><td class="left"></td><td> </td><td class="right"></td><td></td></tr>
    468      <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 33 change blocks.&nbsp;</a></th></tr>
    469      <tr class="stats"><td></td><th><i>85 lines changed or deleted</i></th><th><i> </i></th><th><i>65 lines changed or added</i></th><td></td></tr>
     150     <tr bgcolor="gray"><th colspan="5" align="center"><a name="end">&nbsp;End of changes. 10 change blocks.&nbsp;</a></th></tr>
     151     <tr class="stats"><td></td><th><i>39 lines changed or deleted</i></th><th><i> </i></th><th><i>18 lines changed or added</i></th><td></td></tr>
    470152     <tr><td colspan="5" align="center" class="small"><br/>This html diff was produced by rfcdiff 1.38. The latest version is available from <a href="http://www.tools.ietf.org/tools/rfcdiff/" >http://tools.ietf.org/tools/rfcdiff/</a> </td></tr>
    471153   </table>
Note: See TracChangeset for help on using the changeset viewer.