Subject: [MMUSIC] RTSP header table version 1

From: Magnus Westerlund <[email-masked]>
Date: Mon, 08 Apr 2002 16:58:53 +0200

Hi,

I have now a first ready version of the RTSP headers table. There are some things to do before we can consider it completed, see to do list in document. Any comments on improvents or questions regarding validity is very much welcome.

Cheers

Magnus Westerlund 

Multimedia Technologies, Ericsson Research ERA/T/VA
----------------------------------------------------------------------
Ericsson Radio Systems AB  | Phone +46 8 4048287
Torshamsgatan 23           | Fax   +46 8 7575550
S-164 80 Stockholm, Sweden | mailto: [email-masked]

RTSP method and header tables 
version 1

To Do:

- Check so no header has been missed

- Resolve the ? in when a header is applicable. 

- Decide on usage of error message bodies.

- Write up proxy operations for the headers needing one.

-------------------------------------------------------------------------------

Methods
                                                                  
  method            direction   object  requirement      acronym  Body
  DESCRIBE          C->S        P,S     recommended      DES 	  r
  ANNOUNCE          C->S, S->C  P,S     optional         ANN	  R
  GET_PARAMETER     C->S, S->C  P,S     optional         GPR	  R,r
  OPTIONS           C->S, S->C  P,S     required         OPT
                                        (S->C: optional) 
  PAUSE             C->S        P,S     recommended      PSE
  PLAY              C->S        P,S     required         PLY
  RECORD            C->S        P,S     optional         REC
  REDIRECT          S->C        P,S     optional         RDR
  SETUP             C->S        S       required         STP
  SET_PARAMETER     C->S, S->C  P,S     optional         SPR	  R,r?
  TEARDOWN          C->S        P,S     required         TRD
                                                                   
   Table 2: Overview of RTSP methods, their direction, and what
   objects (P: presentation, S: stream) they operate on. Body notes
   if a method is allowed to carry body and in which direction,
   R = Request, r=response. 

Note: There has been some usage of the body to convey more information in error messages 
for responses containing error codes. Some error messages seem to mandate such usage.

Headers

   The general syntax for header fields is covered in Section 4.2. This
   section lists the full set of header fields along with notes on
   syntax, meaning, and usage.  Throughout this section, we use [HX.Y]
   to refer to Section X.Y of the current HTTP/1.1 specification RFC
   2616 [?]. Examples of each header field are given.

   Information about header fields in relation to methods and proxy
   processing is summarized in Table 3.

   The "where" column describes the request and response types in which
   the header field can be used. Values in this column are:

        R: header field may only appear in requests;

        r: header field may only appear in responses;

        2xx, 4xx, etc.: A numerical value or range indicates response
             codes with which the header field can be used;

        c: header field is copied from the request to the response.

        An empty entry in the "where" column indicates that the header
             field may be present in all requests and responses.

   The "proxy" column describes the operations a proxy may perform on a
   header field:

        a: A proxy can add or concatenate the header field if not
             present.

        m: A proxy can modify an existing header field value.

        d: A proxy can delete a header field value.

        r: A proxy must be able to read the header field, and thus this
             header field cannot be encrypted.

   The rest of the columns relate to the presence of a header field in a
   method:

        c: Conditional; requirements on the header field depend on the
             context of the message.

        m: The header field is mandatory.

        m*: The header field SHOULD be sent, but clients/servers need to
              be prepared to receive messages without that header field.

        o: The header field is optional.

        t: The header field SHOULD be sent, but clients/servers need to
             be prepared to receive messages without that header field.
             If a stream-based protocol (such as TCP) is used as a
             transport, then the header field MUST be sent.

        *: The header field is required if the message body is not
             empty. See sections 20.14, 20.15 and 7.4 for details.

        -: The header field is not applicable.

   "Optional" means that a Client/Server MAY include the header field in 
   a request or response, and a Client/Server MAY ignore the header 
   field if present in the request or response (The exception to this 
   rule is the Require header field discussed in 12.33). A "mandatory" 
   header field MUST be present in a request, and MUST be understood by 
   the Client/Server receiving the request. A mandatory response header 
   field MUST be present in the response, and the header field MUST be 
   understood by the Client/Server processing the response. "Not 
   applicable" means that the header field MUST NOT be present in a 
   request. If one is placed in a request by mistake, it MUST be ignored 
   by the Client/Server receiving the request. Similarly, a header field 
   labeled "not applicable" for a response means that the Client/Server 
   MUST NOT place the header field in the response, and the 
   Client/Server MUST ignore the header field in the response.

   A Client/Server SHOULD ignore extension header parameters that are 
   not understood.
   
   The From, Location, and RTP-Info header fields contain a URI. If the 
   URI contains a comma, or semicolon, the URI MUST be enclosed in 
   double quotas ("). Any URI parameters are contained within these 
   quotas. If the URI is not enclosed in double quotas, any semicolon-
   delimited parameters are header-parameters, not URI parameters.

Header             Where Proxy DES OPT GPR SPR ANN STP PLY RE* PSE TRD RDR   
Accept             R           o   -   -   -   -   -   -   -   -   -   -
Accept-Encoding    R           o   -   -   -   -   -   -   -   -   -   -
Accept-Language    R           o   -   -   -   -   -   -   -   -   -   -
Allow              405         -   -   -   -   m   -   m   m   m   -   - 
Authorization      R           o   o   o   o   o   o   o   o   o   o   o 
Bandwidth          R           o   o?  -   o   -   o   o   -   -   -   -
Blocksize          R           o   -   -   o   -   o   o   -   -   -   - 
Cache-Control                  -   -   -   -   -   o   -   -   -   -   -
Conference         R           -   -   -   -   -   o   -   -   -   -   - 
Connection                     o   o   o   o   o   o   o   o   o   o   o   
Content-Base       R           -   -   o   o   o   -   -   -   -   -   -   
Content-Base       r           o   -   o   o   -   -   -   -   -   -   -
Content-Base       4xx         o   o   o   o   o   o   o   o   o   o   o
Content-Encoding   R           -   -   o   o   o   -   -   -   -   -   - 
Content-Encoding   r           o   -   o   o   -   -   -   -   -   -   -   
Content-Encoding   4xx         o   o   o   o   o   o   o   o   o   o   o
Content-Language   R           -   -   o   o   o   -   -   -   -   -   - 
Content-Language   r           o   -   o   o   -   -   -   -   -   -   -
Content-Language   4xx         o   o   o   o   o   o   o   o   o   o   o
Content-Length     R           -   -   *   *   *   -   -   -   -   -   - 
Content-Length     r           *   -   *   *   -   -   -   -   -   -   -
Content-Length     4xx         *   *   *   *   *   *   *   *   *   *   *
Content-Location   R           -   -   o   o   o   -   -   -   -   -   - 
Content-Location   r           o   -   o   o   -   -   -   -   -   -   -   
Content-Location   4xx         o   o   o   o   o   o   o   o   o   o   o
Content-Type       R           -   -   *   *   *   -   -   -   -   -   - 
Content-Type       r           *   -   *   *   -   -   -   -   -   -   -
Content-Type       4xx         *   *   *   *   *   *   *   *   *   *   *
CSeq               Rc          m   m   m   m   m   m   m   m   m   m   m
Date                           o   o   o   o   o   o   o   o   o   o   o   
Expires            r           o   -   -   -   -   -   -   -   -   -   -
From                           o   o   o   o   o   o   o   o   o   o   o 
                               
Header             Where Proxy DES OPT GPR SPR ANN STP PLY REC PSE TRD RDR   
                               
If-Modified-Since  R           o   -   -   -   -   o   -   -   -   -   - 
Last-Modified      R           o   -   o   o   -   o   -   -   -   -   -
Last-Modified      R           -   -   o   o   o   o   -   -   -   -   -
Location           R           -   -   -   -   -   -   -   -   -   -   m
Location           3xx         m   -   -?  -?  -?  m   -?  -?  -?  -   -
Proxy-Authenticate 407         m   m   m   m   m   m   m   m   m   m   m
Proxy-Require      R           o   o   o   o   o   o   o   o   o   o   o            
Public             r           -   m*  -   -   -   -   -   -   -   -   -
Public 		   501         m*  m*  m*  m*  m*  m*  m*  m*  m*  m*  m*
Range              R           -   -   -   -   -   -   o   -   o   -   o
Range 		   r           -   -   -   -   -   -   m*  -   -   -   -
Referer            R           o   o   o   o   o   o   o   o   o   o   o
Require            R           o   o   o   o   o   o   o   o   o   o   o
Retry-After        3xx,503     o   -   -?  -?  -?  o   -?  -?  -?  -   -
RTP-Info           r           -   -   -   -   -   -   m   -   -   -   -
Scale                          -   -   -   -   -   -   o   o   -   -   -
Session            R           -   o   o   o   m   o   m   m   m   m   m   
Session            r           -   c   c   c   m   c   m   m   m   m   m
Server		   R           -   o   o   o   o   -   -   -   -   -   o
Server             r           o   o   o   o   o   o   o   o   o   o   -
Speed                          -   -   -   -   -   -   o   -   -   -   -
Transport                      -   -   -   -   -   m   -   -   -   -   -
Unsupported        r           c   c   c   c   c   c   c   c   c   c   c
User-Agent         R           m*  m*  m*  m*  m*  m*  m*  m*  m*  m*  - 
User-Agent         r           -   -   -   -   -   -   -   -   -   -   m*
Vary               r           c   c   c   c   c   c   c   c   c   c   -
Via                R     amr   o   o   o   o   o   o   o   o   o   o   o 
Via		   c     dr    m   m   m   m   m   m   m   m   m   m   m
WWW-Authenticate   401         m   m   m   m   m   m   m   m   m   m   m

Header             Where Proxy DES OPT GPR SPR ANN STP PLY REC PSE TRD RDR

   Table 3: Overview of how headers are to be be used for different 
   methods.

---

From: Magnus Westerlund <[email-masked]>
Date: Tue, 09 Apr 2002 09:14:14 +0200

Hi Gayathri,

I also reply to the MMUSIC WG which is the place to discuss/inform about 
RTSP stuff.

Thank you for the proposal, I think we have to wait until the feature 
negotiation mechanism is finished and we have defined the couple of 
different features that we know this far, until we update the chapter on 
implementation requirements. My guess is that by reviewing the minimal 
implementation for server and client we can see if that is clear enough 
on what is needed for implementation. To that chapter I think we should 
add the different features defined and which extra header and 
functionality is need compared to the minimum implementation. Doing that 
work we will see if something like http summary tables is required or not.

Cheers

Magnus

Gayathri Ramakrishnan wrote:

>Hi,
>For more clarity of the doc, you also try to add / follow
>some style which has been adopted in the HTTP1.1 requirement
>summary doc. This contains a tabulation which is clearer
>as to what the client/server/proxy has to implement along
>with reference to the appropriate sections.
>Please find the doc attached.
>
>Hope this helps.
>- Gayathri
>
>Magnus Westerlund wrote:
>
>>

-- 

Magnus Westerlund 

HTTP Working Group                       R. Patterson, Sterling
Software
Internet-Draft                                           20 October
1998
Expires: 20 April 1999

                     HTTP/1.1 Requirements Summary

                  draft-patterson-http-req-sum-00.txt

STATUS OF THIS MEMO

        This document is an Internet-Draft. Internet-Drafts are
        working documents of the Internet Engineering Task Force
        (IETF), its areas, and its working groups. Note that other
        groups may also distribute working documents as
        Internet-Drafts.

        Internet-Drafts are draft documents valid for a maximum of
        six months and may be updated, replaced, or obsoleted by
        other documents at any time. It is inappropriate to use
        Internet-Drafts as reference material or to cite them other
        than as "work in progress."

        To learn the current status of any Internet-Draft, please
        check the "1id-abstracts.txt" listing contained in the
        Internet-Drafts Shadow Directories on ftp.is.co.za
        (Africa), nic.nordu.net (Europe), munnari.oz.au (Pacific
        Rim), ds.internic.net (US East Coast), or ftp.isi.edu (US
        West Coast).

        Distribution of this document is unlimited.  Please send
        comments to the HTTP working group at
        <[email-masked]>.  Discussions of the working
        group are archived at
        <URL:http://www.ics.uci.edu/pub/ietf/http/>.  General
        discussions about HTTP and the applications which use HTTP
        should take place on the <[email-masked]> mailing list.

ABSTRACT

        RFC1122 ?1Ù introduced a ``Requirements Summary'' format,
        to help implementors understand what aspects of a lengthy
        specification were mandatory, recommended, or optional.
        The HTTP/1.1 specification is similarly lengthy and
        complicated; many implementors have asked for guidance in
        understanding what they need to do.

Patterson                                                       ?Page
1Ù

Internet-Draft         HTTP requirements summary         20 October
1998

                            TABLE OF CONTENTS

  1 Introduction
1
  2 Categorizing implementations
2
       2.1 Introductory material for Requirements Summary
2
  3 Requirements summary for Section 1: Introduction
4
  4 Requirements summary for Section 2: Notational Conventions and
    Generic Grammar
4
  5 Requirements summary for Section 3: Protocol Parameters
5
  6 Requirements summary for Section 4: HTTP Message
6
  7 Requirements summary for Section 5: Request
7
  8 Requirements summary for Section 6: Response
8
  9 Requirements summary for Section 7: Entity
8
 10 Requirements summary for Section 8: Connections
9
 11 Requirements summary for Section 9: Method Definitions
10
 12 Requirements summary for Section 10: Status Code Definitions
11
 13 Requirements summary for Section 11: Access Authentication
13
 14 Requirements summary for Section 12: Content Negotiation
13
 15 Requirements summary for Section 13: Caching in HTTP
14
 16 Requirements summary for Section 14: Header Field Definitions
16
 17 Requirements summary for Section 15: Security Considerations
22
 18 Requirements summary for Section 16: Acknowledgments
22
 19 Requirements summary for Section 17: References
22
 20 Requirements summary for Section 18: Authors' Addresses
23
 21 Requirements summary for Section 19: Appendices
23
 22 Requirements summary for Section 20: Full Copyright Statement
23
 23 Requirements summary for Section 21: Index
23
 24 Security Considerations
23
 25 Acknowledgments
24
 26 References
24
 27 Author's address
24

 1 Introduction

    RFC1122 ?1Ù introduced a ``Requirements Summary'' format, to help
    implementors understand what aspects of a lengthy specification
were
    mandatory, recommended, or optional.  The HTTP/1.1 specification is
    similarly lengthy and complicated; many implementors have asked for
    guidance in understanding what they need to do.  This is especially
    important because there are several kinds of HTTP/1.1
implementations
    (including server, proxy, and client, with or without caches).
Many
    aspects of the specification apply only to a subset of these
    implementation categories, which means that someone implementing,
    say, an HTTP client must disentangle the client-specific
requirements
    from the (client-irrrelevant) requirements for servers and proxies.

Patterson                                                       ?Page
2Ù

Internet-Draft         HTTP requirements summary         20 October
1998

 2 Categorizing implementations

    The format of the Requirements Summary is designed so
    that it is readable even in the plain-ASCII version of the HTTP/1.1
    specification, since this is the ``official'' version of an IETF
    specification.  This places some constraints on the number of
columns
    in the format, which in turn constrains the number of categories
that
    can be comfortably included.

    Although at first glance, there might appear to be at least six
    different implementation categories (server, proxy, client, each
with
    or without a cache).  However, in many sections of the HTTP
    specification, caching is irrelevant.  For many other features, it
is
    fairly obvious whether the feature applies to a cache or not.

    Therefore, this document uses a format where the applicability of a
    requirement to an caching implementation is signalled by a
footnote,
    rather than expanding the number of columns to six.

 2.1 Introductory material for Requirements Summary
    ?This is repeated more or less verbatim from section 19.9 of ?2Ù,
for
    the benefit of the reader.Ù

    This section summarizes the requirements of the HTTP/1.1
    specification.  (Requirements are those aspects of the protocol
    defined with the words "MUST", "SHOULD", or "MAY.")

    This list is not a normative part of the HTTP/1.1 specification,
and
    if there is any conflict between this listing and another part of
the
    specification, the statements elsewhere in the specification take
    absolute priority.

    Requirements are listed in the order that they appear in the the
    specification.  For each requirement, the list includes

       - a very brief summary of the feature; this is meant for
         identification purposes only, and must not be used as a
         specification of the feature.

       - the section of the document in which the feature is
         specified.

       - A column for each of three categories of implementation
         (Server, Proxy, and Client), showing whether the listed
         feature is a MUST, SHOULD, or MAY requirement.

       - A column for additional footnotes Note that some aspects of

Patterson                                                       ?Page
3Ù

Internet-Draft         HTTP requirements summary         20 October
1998

         the protocol may be specified in multiple sections in
         separated part of the document.

    In order to fit into the standard IETF format for ASCII text
    documents, some of the column headings, and the requirement
keywords,
    are abbreviated.

    ?End of extract from ?2Ù.Ù

    Key for column headings:
      Srvr =  Server
      Prox =  Proxy
      Clnt =  Client

    Key for requirements keywords:
       M =    MUST
       MN =   MUST NOT
       S =    SHOULD
       SN =   SHOULD NOT
       ok =   MAY
       na =   Not applicable

    Some entries are listed as ``MUST NOT'' or ``SHOULD NOT'' even if
the
    feature summary seems to indicate a ``MUST'' or ``SHOULD''.  The
    entries reflect the words from the actual spec, rather than the
    feature summary.  I.e., the feature summary wording is only to help
    the reader find the appropriate passage; it is in no way a
definitive
    description of the requirement!

 3  Requirements summary for Section 1: Introduction

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    "proxy" definition                      1.3      na   M    na
586

 4  Requirements summary for Section 2: Notational Conventions and
Generic
    Grammar

    ... text about variations from the norm ...

    Notes:
      1   ...

Patterson                                                       ?Page
4Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

       857       2.1 Augmented BNF            (",") and OPTIONAL linear white
space (LWS). This makes the usual
    1#<thing> requires at least one         2.1      M    M    M
866
    Tokens must be delimited                2.1      M    M    M
883
    Replace LWS with SP                     2.2      ok   ok   ok
934
    TEXT allows non-ISO-8859-1              2.2      ok   ok   ok
941
    Specials in parms must be quoted        2.2      M    M    M
964
    Backslash enquotes single chars         2.2      ok   ok   ok
991

 5  Requirements summary for Section 3: Protocol Parameters

    ... text about variations from the norm ...

    Notes:
      1   Applies to caching proxies only.

      2   Applies to gateways only.

      3   Applies to tunnels only.

      4   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    HTTP-Version is two integers            3.1      M    M    M
1025
    HTTP-Version can be multi digits        3.1      ok   ok   ok
1026
    Accept HTTP-Version w/ lzeroes          3.1      M    M    M
1028
    Send HTTP-Version w/ lzeroes            3.1      MN   MN   MN
1029
    HTTP-Version=HTTP/1.1 cond. comp.       3.1      M    M    M
1032
    Send HTTP/1.1 if at least cond comp.    3.1      S    S    S
1034
    Send HTTP/1.1 for non-HTTP/1.0 msgs     3.1      M    M    M
1035
    Send HTTP-Version > actual              3.1      na   MN   na
1045
    Downgrade higher HTTP-Version           3.1      na   M    na
1047
    Upgrade HTTP-Version to highest         3.1      na   M    na  1
1052
    Upgrade HTTP-Version to highest         3.1      na   ok   na  2
1053
    Upgrade HTTP-Version to highest         3.1      na   MN   na  3
1053
    Resp. HTTP-Version major like request   3.1      na   M    na
1054
    URI size must hold all for server       3.2.1    M    M?   na
1091
    URL size unbounded for GET forms        3.2.1    S    S?   na
1092
    Send 414 for URI too long               3.2.1    S    S?   na
1094
    Avoid IP addrs in URLs                  3.2.2    S    S    S
1114
    abs_path='' => abs_path='/'             3.2.2    na?  M    M
1115
    Add domain to host name                 3.2.2    na   ok   na
1118
    Change host name                        3.2.2    na   MN   na
1119
    Case sensitive URI comparison           3.2.3    na   S    S
1126
    Host names case insensitive             3.2.3    na   M    M
1131
    Scheme names case insensitive           3.2.3    na   M    M
1132
    Accept all three date formats           3.3.1    M    M    M
1163
    Send RFC 1123 date format               3.3.1    M    M    M
1164
    Send date/time in GMT                   3.3.1    M    M    M
1173

Patterson                                                       ?Page
5Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Assume GMT for asctime format           3.3.1    M    M    M
1177
    Include LWS in HTTP-date                3.3.1    MN   MN   MN
1178
    MIME character set is complete          3.4      M    M    M
1246
    Honor IANA character set names          3.4      M    M    M
1267
    Use only IANA character set names       3.4      S    S    S
1268
    Send charset if ISO-8859-1              3.4.1    ok   ok   ok
1279
    Send charset if ISO-8859-1 and safe     3.4.1    S    S    S
1280
    Respect charset label                   3.4.1    M    M    M
1284
    Respect Content-Type charset label      3.4.1    M    M    M
1286
    Equate x-gzip and x-compress            3.5      S    S    S
1332
    Send identity in Content-Encoding       3.5      SN   SN   SN
1342
    Register new content-coding tokens      3.5      S    S    S
1344
    Publicly available content-codings      3.5      S    S    S
1346
    Chunked when not closing connection     3.6      M    M    M
1376
    Chunked is last transfer-coding         3.6      M    M    M
1383
    Apply chunked > 1 time                  3.6      MN   MN   MN
1384
    Register new transfer-coding tokens     3.6      S    S    S
1402
    Send 501 when transfer-coding unknown   3.6      S    S    na
1406
    Send transfer-codings to HTTP/1.0       3.6      MN   MN   na
1407
      1415       3.6.1 Chunked Transfer Coding      followed by an OPTIONAL
trailer containing entity-header fields. This
    Trailer header fields with chunked      3.6.1    MN   MN   na
1456
    Receive and decode chunked t-coding     3.6.1    M    M    M
1481
    Ignore unknown chunk-extensions         3.6.1    M    M    M
1482
    Parameters follwing type/subtype        3.7      ok   ok   ok
1503
    LWS between type and subtype            3.7      MN   MN   MN
1509
    LWS between attribute and value         3.7      MN   MN   MN
1509
    Avoid m-type parms for HTTP/1.0         3.7      S    S    S
1516
    Send non-TEXT in canonical form         3.7.1    M    M    M
1528
    Accept CR and LF in TEXT as CRLF        3.7.1    M    M    M
1536
    Subsitute CR or LF for CRLF in hdrs     3.7.1    MN   MN   MN
1544
    Canonical form before content-coding    3.7.1    M    M    M
1548
    Label non-ISO-8859-1 data.              3.7.1    M    M    M
1555
    Multipart boundary required             3.7.2    M    M    M
1568
    CRLF only separator in multipart        3.7.2    M    M    M
1569
    No multipart epilogue                   3.7.2    M    M    M
1571
    Transmit multipart epilogue             3.7.2    MN   MN   MN
1572
    UA follow MIME-UA multipart behavior    3.7.2    na   S    S
1583
    UA follow MIME-UA behavior              3.7.2    na   S    S
1589
    Handle unknown multipart as mixed       3.7.2    M    M    M
1592
    Short direct product tokens             3.8      S    S    S
1623
    Non-essential info in product tokens    3.8      MN   MN   MN
1623
    Any character in product version        3.8      ok   ok   ok
1625
    Product version for version only        3.8      ok   ok   ok
1625
    Product versions only change version    3.8      ok   ok   ok
1627
    qvalue with > 3 digits after dot        3.9      MN   MN   MN
1639
    Limit config of qvalue to 3 digits      3.9      S    S    S
1640
    Share strong entity tag if congruent    3.11     ok   ok   ok
1703
    Share weak entity tag if equivalent     3.11     ok   ok   ok
1706
    Unique entity tag for versions of ent.  3.11     M    M    M
1711
    ???entity tag???                        3.11     ok   ok   ok
1712
    Ignore non-byte ranges                  3.12     ok   ok   ok
1732

 6  Requirements summary for Section 4: HTTP Message

Patterson                                                       ?Page
6Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Ignore empty lines before request       4.1      S    S    na
1767
    Ignore CRLF before request              4.1      S    S    na
1770
    Preface or follow request w/ extra CRLF 4.1      na   MN   MN
1774
    Preceed field values with LWS           4.2      ok   ok   ok
1785
    Follow "common form"                    4.2      S    S    S
1788
    Remove lead/trail LWS from field values 4.2      ok   ok   ok
1811
    Replace LWS w/ SP in field values       4.2      ok   ok   ok
1813
    Split field into multiples if #(values) 4.2      ok   ok   ok
1822
    Possible to combine split fields        4.2      M    M    M
1825
    Reorder split fields                    4.2      na   MN   na
1830
    Indicate t-codings in Transger-Encoding 4.3      M    M    M
1845
    Add or remove t-codings                 4.3      ok   ok   ok
1848
    Send msg body if method doesn't allow   4.3      na   MN   MN
1857
    Consume and forward all msg bodies      4.3      S    S    na
1864
    Ignore msg body if method doesn't allow 4.3      S    S    na
1867
    Send msg body with HEAD response        4.3      MN   MN   na
1872
    Send msg body with 1xx, 204, 304 resp.  4.3      MN   MN   na
1875
    Send zero-length msg body for others    4.3      ok   ok   na
1876
    Terminate no-body resp after header     4.4      ?    ?    ?
1887
    Honor Content-Length w/ Transfer-Enc.?  4.4      MN   MN   MN
1900
    Use multi/byteranges when unsure        4.4      MN   MN   MN
1907
    Send Content-Length if unsure HTTP 1.1  4.4      M    M    M
1928
    Resp 400/411 if body and no Content-Len 4.4      S    S    na
1931
    Accept chunked                          4.4      M    M    M
1935
    Send Content-Length w/ non-identity     4.4      MN   MN   MN
1940
    Ignore Content-Length w/ non-identity   4.4      M    M    M
1942
    Content-Length match octets in body     4.4      M    M    M
1945
    Notify user when invalid length rec'd   4.4      na   na   M
1946

 7  Requirements summary for Section 5: Request

    ... text about variations from the norm ...

    Notes:
      1   Requirement only applies to "general purpose" servers.

      2   Requirement only applies to "transparent proxies".

      3   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

Patterson                                                       ?Page
7Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Respond 405 in unimplemented but known  5.1.1    S    S    na
2026
    Support GET and HEAD                    5.1.1    M    M    na  1
2029
      2031       5.1.1 Method       OPTIONAL; however, if the above methods
are implemented, they MUST be
    Implement optional meths correctly      5.1.1    M    M    na
2031
      2058       5.1.2 Request-URI          The absoluteURI form is REQUIRED when
the request is being made to a
    Forward request through proxy           5.1.2    na   ok   na
2060
    Recognize self in absoluteURI           5.1.2    na   M    na
2063
    Accept absoluteURI in request           5.1.2    M    M    na
2070
    Send abs_path for origin server         5.1.2    na   M    M
2078
    Send Host for origin server             5.1.2    na   M    M
2079
    Send null path as "/" in abs_path       5.1.2    na   M    M
2089
    Decode url-encoded Request-URI          5.1.2    M    M    na
2094
    Respond to invalid Request_URI approp.  5.1.2    S    S    na
2095
    Rewrite abs_path when forwarding        5.1.2    na   MN   na  2
2103
    Ignore Host if not used by server       5.2      ok   na   na
2120
    Honor Host rules if used by server      5.2      M    na   na
2126
    Ignore Host if Request-URI is absolute  5.2      M    na   na
2130
    Send 400 response for host problems     5.2      M    na   na
2138
    Guess host if HTTP/1.0 w/o Host         5.2      ok   na   na
2141
    Recognize extension request-headers     5.3      ok   ok   na
2182

 8  Requirements summary for Section 6: Response

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Replace response text                   6.1.1    ok   ok   na
2249
    Recognize status-code class             6.1.1    na   M    M
2306
    Cache unrecognized status               6.1.1    na   MN   MN
2310
    Present entity w/ unrec. status to user 6.1.1    na   na   S
2314
    Recognize extension response-headers    6.2      na   ok   ok
2343

 9  Requirements summary for Section 7: Entity

    ... text about variations from the norm ...

    Notes:
      1   Requirement only applies to "transparent proxies".

      2   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Message contains entity if not forbid.  5        ok   ok   ok
2351
      2364       7.1 Entity Header Fields           Some of this metainformation
is OPTIONAL; some might be REQUIRED by
      2364       7.1 Entity Header Fields           Some of this metainformation
is OPTIONAL; some might be REQUIRED by
    Ignore unrecognized headers             7.1      S    S    S
2384
    Forward unrecognized headers            7.1      na   M    na  1
2384
    Send Content-Type with msg body         7.2.1    S    S    S
2421

Patterson                                                       ?Page
8Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Guess media type if no Content-Type     7.2.1    ok   ok   ok
2424
    Treat unrecognized m. t. as appl/oct.   7.2.1    S    S    S
2426

10  Requirements summary for Section 8: Connections

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Implement persistent connections        8.1.1    S    S    S
2481
    Assume persistent connection            8.1.2    na   S    S
2489
    Send requests after Connection: Close   8.1.2    na   MN   MN
2495
    Assume persistent conn unless C: Close  8.1.2.1  ok   ok   na
2501
    Send Connection: Close for non-pers. c. 8.1.2.1  S    S    na
2505
    ???                                     8.1.2.1  ?    ?    ?
2508
    Send Connection: Close for non-pers. c. 8.1.2.1  na   S    S
2512
    Assume persistent conn. for HTTP < 1.1  8.1.2.1  SN   SN   SN
2523
    All msgs on p. c. have self-defined len 8.1.2.1  M    M    M
2528
    Pipeline requests on persistent conn.   8.1.2.2  na   ok   ok
2535
    Send responses in request order         8.1.2.2  M    M    na
2537
    Retry connection if pipelining fails    8.1.2.2  na   S    S
2541
    Retry pipelined requests until persis.  8.1.2.2  na   MN   MN
2543
    Retry pipelined reguests after close    8.1.2.2  na   M    M
2544
    Pipeline non-idempotent requests        8.1.2.2  na   MN   MN
2548
    Wait before sending non-idempotent req. 8.1.2.2  na   S    S
2552
    Signal pers. con. sep. to client&server 8.1.3    na   M    na
2561
    Establish pers con with HTTP 1.0 client 8.1.3    na   MN   na
2566
    Close connection on timeout             8.1.4    S    S    S
2586
    Watch constantly for connection close   8.1.4    S    S    S
2587
    Close connection at any time            8.1.4    ok   ok   ok
2593
    Recovcer from asynchronous close        8.1.4    M    M    M
2600
    Reopen and retransmit requests          8.1.4    na   S    S
2601
    Retransmit non-idempotent requests      8.1.4    na   MN   MN
2605
    Allow user to retrans non-idem requests 8.1.4    na   na   ok
2605
    Repeat retry if retry fails             8.1.3    na   SN   SN
2607
    Respond to at least one request/conn.   8.1.4    S    S    na
2610
    Close connection in middle of response  8.1.4    SN   SN   na
2611
    Limit simultaneous persistent conns.    8.1.4    na   S    S
2615
    Single-user client limit to 2/server    8.1.4    na   na   S
2617
    Proxy limit to 2*n/server               8.1.4    na   S    na
2618
    Use flow control instead of closing     8.2.1    S    S    na
2629
    Watch for error resp during req trans   8.2.2    na   S    S
2645
    Cease transmission on error resp        8.2.2    na   S    S
2647
    Send zero-length chunck to terminate    8.2.2    na   ok   ok
2650
    Close conn to terminate w/ Content-Len  8.2.2    na   M    M
2651
    Retry idempotent requests w/o user int. 8.2.3    na   ok   ok
2660
    Retry non-idempotent req w/o user int.  8.2.3    na   SN   SN
2662
    Confirm by user-agent s/w               8.2.3    na   ok   ok
2664

Patterson                                                       ?Page
9Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send Expect: 100-cont. to get 100 resp  8.2.4    na   M    M
2680
    Send Expect: 100-cont. w/o msg body     8.2.4    na   MN   MN
2683
    Wait for 100 resp if never seen before  8.2.4    na   SN   SN
2692
    Send 100 resp for Expect: 100-continue  8.2.4    M    na   na
2704
    Wait for body before sending 100        8.2.4    MN   na   na
2707
    Close connection if sending error stat. 8.2.4    ok   na   na
2709
    Read/ignore req if sending error stat.  8.2.4    ok   na   na
2709
    Execute req if sending error stat.      8.2.4    MN   na   na
2710
    Send 100 if no Expect: 100-continue     8.2.4    SN   na   na
2713
    Send 100 if no E: 100-c from HTTP 1.0   8.2.4    MN   na   na
2715
    Send 100 if no E: 100-c on 1.1 POST/PUT 8.2.4    ok   na   na
2718
    Omit 100 if msg body already received   8.2.4    ok   na   na
2727
    Send final status after sending 100     8.2.4    M    na   na
2731
    Close conn if err & no Expect: 100-cont 8.2.4    SN   na   na
2740
    Forward Expect: 100-continue to  > 1.0  8.2.4    na   M    na
2754
    Forward Expect: 100-continue to <= 1.0  8.2.4    na   MN   na
2764
    Send 417 if Expect: 100-cont to <= 1.0  8.2.4    na   M    na
2764
    Cache recent HTTP-Versions from servers 8.2.4    na   S    na
2767
    Forward 100 to HTTP 1.0 w/o Expect: 100 8.2.4    na   MN   na
2770
    Retry request w/ msg body if no E: 100  8.2.5    na   s    s
2784
    Back off exponentially to retry         8.2.5    na   ok   ok
2785
    Continue backoff after error stat       8.2.5    na   SN   SN
2814
    Close conn after error stat             8.2.5    na   S    S
2816

11  Requirements summary for Section 9: Method Definitions

    ... text about variations from the norm ...

    Notes:
      1   ...

      2   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Send Host with all requests             9        na   M    M
2829
    GET and HEAD side effects               9.1.1    SN   SN   na
2844
    OPTIONS and TRACE side effects          9.1.2    SN   SN   na
2863
    Send Content-Type w/ OPTIONS if body    9.2      na   M    M
2896
    Discard body with OPTIONS               9.2      ok   na   na
2900
    Send optional feature hdrs w/ OPT. 200  9.2      S    S    na
2914
    Send communication info w/ OPT. 200     9.2      S    S    na
2917
    Use content negotiation for resp. form. 9.2      ok   ok   ok
2920
    Send Content-Length: 0 if no body       9.2      M    M    ok
2922
    Target proxy with Max-Forwards          9.2      na   ok   ok
2925
    Check for Max-Forwards header           9.2      na   M    na
2928
    Forward Max-Forwards: 0                 9.2      na   MN   na
2929
    Respond to Max-Forwards: 0 w/ comm opts 9.2      na   S    na
2930
    Decrement Max-Forwards when forwarding  9.2      na   M    na
2932
    Add Max-Forwards if not present         9.2      na   MN   na
2934
    Respond to HEAD with msg body           9.4      MN   MN   na
2975

Patterson                                                      ?Page
10Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    HEAD hdr metainfo identical to GET      9.4      S    S    na
2977
    Cache HEAD response                     9.4      ok   ok   ok
2984
    Update cache with HEAD response         9.4      ok   ok   ok
2985
    HEAD response make cache entry stale    9.4      M    M    M
2989
    Send 201 on POST if resource created    9.5      S    na   na
3030
    POST requests follow sec. 8.2 rules     9.5      na   M    M
3039
    Treat PUT entity as modifed version     9.6      S    S    na
3049
    Send 201 on PUT if new resource created 9.6      M    na   na
3054
    Send 200/204 on PUT if resource updated 9.6      S    na   na
3056
    Send error resp on PUT if failure       9.6      S    na   na
3064
    Ignore unrecognized Content-* hdrs      9.6      MN   MN   na
3065
    Send 501 if unrecognized Content-* hdrs 9.6      M    na   na
3067
    Resp to PUT makes cached entries stale  9.6      S    S    S
3070
    Apply PUT to unidentified resource      9.6      MN   na   na
3080
    Send 301 if PUT would update unid rsrc  9.6      M    na   na
3082
    Decide whether to redirect on 301       9.6      na   na   ok
3082
    One resource with many URIs             9.6      ok   ok   na
3086
    PUT requests follow sec. 8.2 rules      9.6      na   M    M
3095
    Apply PUT ent-hdrs to affected resource 9.6      S    S    na
3099
    Server or human override of DELETE      9.7      ok   na   na
3106
    Respond w/ success if not intending     9.7      SN   na   na
3110
    Send 200/202/204 if DELETE successful   9.7      S    na   na
3115
    Resp to DELETE makes cached ents. stale 9.7      S    S    S
3127
    Send request as 200 resp body on TRACE  9.8      S    S    na
3135
    Send msg body with TRACE request        9.8      na   na   MN
3138
    Send resp msg body as message/http      9.8      S    S    na
3149
    Cache TRACE responses                   9.8      MN   MN   MN
3151

12  Requirements summary for Section 10: Status Code Definitions

    ... text about variations from the norm ...

    Notes:

      1   Requirement applies to clients with link-editting
capabilities.

      2   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Send 1xx to HTTP 1.0 client             10.1     MN   MN   na
3174
    Accept 1xx if not expecting 100         10.1     na   M    M
3183
    Ignore unexpected 1xx responses         10.1     na   ok   ok
3185
    Forward 1xx                             10.1     na   M    na
3188
    Continue request when 100               10.1.1   na   S    S
3198
    Send request or ignore when 100         10.1.1   na   S    S
3201
    Send final response when 100            10.1.1   M    M    na
3203
    Switch protocol when advantageous       10.1.2   S    S    na
3217
    Send info in msg body when 201          10.2.2   S    S    na
3258
    Create resource before responding       10.2.2   M    na   na
3262
    Send 202 in action deferred             10.2.2   S    na   na
3263

Patterson                                                      ?Page
11Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send ETag on 201 for new variant        10.2.2   ok   ok   na
3266
    Send status info in msg body on 202     10.2.3   S    S    na
3284
    Subset/superset metainfo on 203         10.2.4   na   ok   na
3293
    Send updated metainfo on 204            10.2.5   ok   ok   na
3311
    Associate metainfo w/ variant on 204    10.2.5   na   S    S
3312
    Change document view on 204             10.2.5   na   na   SN
3315
    Apply metainfo to view on 204           10.2.5   na   na   S
3319
    Send msg body w/ 204                    10.2.5   MN   MN   na
3322
    Reset document view on 205              10.2.6   na   na   S
3328
    Send msg body w/ 205                    10.2.6   MN   MN   na
3333
    Received Range to send 206              10.2.7   M    M    na
3339
    Received If-Range to send 206           10.2.7   ok   ok   na
3340
    Send specified hdrs w/ 206              10.2.7   M    M    na
3343
    Content-Length match octet count on 206 10.2.7   M    M    na
3349
    Send entity-hdrs w/ 206 if strong If-R. 10.2.7   SN   SN   na
3368
    Send entity-hdrs w/ 206 if weak   If-R. 10.2.7   MN   MN   na
3370
    Send entity-hdrs w/ 206 if no If-Range  10.2.7   M    M    na
3373
    Combine 206 w/ cached ent if no match   10.2.7   MN   MN   MN
3376
    Cache 206 if no Range/Content-R. supt.  10.2.7   MN   MN   MN
3381
    Redirect w/o user int. iff GET/HEAD     10.3     na   na   ok
3388
    Detect infinite redirection loops       10.3     na   S    S
3390
    Send choices in msg body if not HEAD    10.3.1   S    S    na
3407
    Select choice automatically on 300      10.3.1   na   ok   ok
3412
    Send preferred choice in Location 300   10.3.1   S    S    na
3416
    Select Location choice automatically    10.3.1   na   ok   ok
3423
    Use returned URI in future on 301       10.3.2   na   S    S
3430
    Relink references on 301                10.3.2   na   S    S   1
3431
    Send new URI in Location on 301         10.3.2   S    S    na
3436
    Send note w/ new URI in body on 301     10.3.2   S    S    na
3438
    Auto-redirect non-GET/HEAD on 301       10.3.2   na   MN   MN
3442
    Use request-URI in future on 302        10.3.3   na   S    S
3454
    Send temporary URI in Location on 302   10.3.3   S    S    na
3459
    Send note w/ temp URI in body on 302    10.3.3   S    S    na
3461
    Auto-redirect non-GET/HEAD on 302       10.3.3   na   MN   MN
3465
    Retrieve new URI w/ GET on 303          10.3.4   na   S    S
3486
    Cache 303 response                      10.3.4   MN   MN   MN
3490
    Send new URI in Location on 303         10.3.4   S    S    na
3493
    Send note w/ new URI in body on 303     10.3.4   S    S    na
3495
    Send 304 if allowed but not modified    10.3.5   S    S    na
3507
    Send msg body on 304                    10.3.5   MN   MN   na
3508
    Send specified headers on 304           10.3.5   M    M    na
3511
    Send entity-headers on 304 if strong    10.3.5   SN   SN   na
3524
    Send entity-headers on 304 if weak      10.3.5   MN   MN   na
3526
    Ignore 304 if not already cached        10.3.5   M    M    M
3530
    Update all cache info on 304            10.3.5   M    M    M
3534
    Send msg body on 304                    10.3.5   MN   MN   na
3543
    Use proxy identified in Location on 305 10.3.6   na   M    M
3549
    305 genereated only by origin server    10.3.6   M    M    na
3552
    Alter redirection over time on 307      10.3.8   ok   ok   na
3569
    Use Request-URI in future on 307        10.3.8   na   S    S
3569
    Send tmp URI in Location on 307         10.3.8   S    S    na
3574
    Send note w/ tmp URI in msg body on 307 10.3.8   S    S    na
3576
    Auto-redirect non-GET/HEAD on 307       10.3.8   na   MN   MN
3580

Patterson                                                      ?Page
12Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send tmp URI in Location on 307         10.3.8   S    S    na
3585
    Send note in msg body on non-HEAD 4xx   10.4     S    S    na
3594
    Display msg body on 4xx                 10.4     na   na   S
3597
    Receive client data before close on 4xx 10.4     S    S    na
3604
    Repeat request w/o change on 400        10.4.1   na   SN   SN
3615
    Send WWW-Authenticate on 401            10.4.2   M    M    na
3621
    Repeat req. with Authorization on 401   10.4.2   na   ok   ok
3623
    Present resp. body if retry gets 401    10.4.2   na   na   S
3629
    Repeat request on 403                   10.4.4   na   SN   SN
3644
    Send reason in body on 403              10.4.4   S    S    na
3646
    Send 410 instead of 404 if permanent    10.4.5   S    S    na
3656
    Send Allow w/ 405                       10.4.6   M    M    na
3672
    Send choices in body on 406             10.4.7   S    S    na
3683
    Auto-select choice on 406               10.4.7   na   ok   ok
3689
    Stop receiving unacceptable response    10.4.7   na   S    S
3698
    ???                                     10.4.8   ?    ?    ?
3706
    Send Proxy-Authenticate w/ 407          10.4.8   na   M    na
3706
    Repeat request w/ Proxy-Authorization   10.4.8   na   ok   ok
3709
    Repeate request on 408                  10.4.9   na   ok   ok
3726
    Send conflict info in body on 409       10.4.10  S    S    na
3735
    Delete references to Request-URI        10.4.11  na   S    S   1
3755
    Send 404 instead of 410 if not perm.    10.4.11  S    S    na
3758
    Repeat request w/ Content-Length on 411 10.4.12  na   ok   ok
3775
    Close connection on 413                 10.4.14  ok   ok   na
3796
    Send Retry-After w/ 413 if temporary    10.4.14  S    S    na
3799
    Retry on 413 w/ Retry-After             10.4.14  na   ok   ok
3801
    Send 416 if no Range match              10.4.17  S    S    na
3826
    Send Content-Range w/ 416               10.4.17  S    S    na
3835
    Send Content-Type: multi/byter. w/ 416  10.4.17  MN   MN   na
3843
    Send note in msg body w/ 5xx            10.5     S    S    na
3860
    Display msg body on 5xx                 10.5     na   na   S
3862
    Send Retry-After w/ 503                 10.5.4   ok   ok   na
3892
    Treat 503 w/o Retry-After as 500        10.5.4   na   S    S
3893
    Send note in msg body w/ 505            10.5.6   S    S    na
3925

13  Requirements summary for Section 11: Access Authentication

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

      3932       11 Access Authentication           HTTP provides several OPTIONAL
challenge-response authentication
    ???                                     11       ?    ?    ?
3933

14  Requirements summary for Section 12: Content Negotiation

    ... text about variations from the norm ...

    Notes:

Patterson                                                      ?Page
13Ù

Internet-Draft         HTTP requirements summary         20 October
1998

      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Negotiate any entity-body               12       ok   ok   ok
3963
    Send Accept-* request headers           12.1     na   ok   ok
3991
    Vary response by any part of request    12.1     ok   na   na
4024

15  Requirements summary for Section 13: Caching in HTTP

    ... text about variations from the norm ...

    Notes:
      1   Applies to transparent proxies only.

      2   Applies to non-transparent proxies only.

      3   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Send most up-to-date response           13.1.1   M    M    M
4156
    Return stale response w/ Warning        13.1.1   ok   ok   ok
4174
    Serve from cache if unconnected         13.1.1   na   S    S
4183
    Send error if unconnected & cannot serv 13.1.1   na   M    M
4184
    Forward stale response w/o added Warn.  13.1.1   na   S    S
4190
    Revalidate response if stale in transit 13.1.1   na   SN   SN
4192
    Display warning if stale w/o Warning    13.1.1   na   na   ok
4195
    Add Warning if response not fresh enuf  13.1.2   na   M    M
4207
    Send Warning for other reasons          13.1.2   ok   ok   ok
4210
    Delete freshness Warnings after reval.  13.1.2   M    M    M
4217
    Delete other Warning after revalidation 13.1.2   MN   MN   MN
4222
    ???                                     13.1.2   ?    ?    ?
4226
    ???                                     13.1.2   ?    ?    ?
4226
    Warning text in natural language        13.1.2   ok   ok   na
4238
      4240       13.1.2 Warnings            headers), and include an OPTIONAL
indication of what character set is
    Multiple Warnings in response           13.1.2   ok   ok   na
4243
    Default cache to non-trans/ineffective  13.1.4   na   na   SN
4289
    Configure cache non-trans/ineffective   13.1.4   na   na   ok
4291
    Inform user if choice overrides server  13.1.4   na   na   S
4295
    Inform continually if ineffective cache 13.1.4   na   na   S
4305
    Send stale responses if not requested   13.1.5   ok   ok   ok
4314
    Send Warning with stale response        13.1.5   M    M    M
4324
    Send stale response if 1st-hand req.    13.1.5   SN   SN   SN
4329
    Specify maximum unvalidated age in req. 13.1.6   na   ok   ok
4343
    Specify minimum remaining age in req.   13.1.6   na   ok   ok
4345
    Specify maximum stage age in req.       13.1.6   na   ok   ok
4350
    Send unexpired cached response          13.2.1   na   ok   ok
4366
    Send expiration in past                 13.2.1   ok   na   na
4388
    Validate expired cache entry            13.2.1   S    S    S
4390

Patterson                                                      ?Page
14Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send C-C: must-rev to force validation  13.2.1   S    na   na
4394
    Use NTP to synchronize cache clocks     13.2.3   S    S    S
4430
    Interpret Age relative to request       13.2.3   M    M    M
4484
    Send Age with cache entry               13.2.3   M    M    M
4534
    Guess expiration if not explicit        13.2.4   ok   ok   ok
4580
    Send Warning 113 if age > 24 hours      13.2.4   M    M    M
4581
    Guess expiration as part of Last-M int  13.2.4   S    S    S
4586
    Ignore response if cache fresher        13.2.5   na   ok   ok
4603
    Retry req w/ max-age=0 if cache newer   13.2.5   na   ok   ok
4603
    Use freshest response                   13.2.5   M    M    M
4608
    Retry req w/ max-age=0 if cache fresher 13.2.6   S    S    S
4636
    Use either response if Date equal       13.2.6   ok   ok   ok
4649
    Retry request if Date equal             13.2.6   ok   ok   ok
4650
    Depend on client choice in same second  13.2.6   MN   MN   na
4651
    Identical validators for strong compar. 13.3.3   M    M    M
4784
    Weak validators for strong compar.      13.3.3   MN   MN   MN
4784
    Identical validators for weak compar.   13.3.3   M    M    M
4787
    Weak validators for weak compar.        13.3.3   ok   ok   ok
4788
    Use weak comparison for simple GET req. 13.3.3   ok   ok   na
4790
    Use strong comparison for other req.    13.3.3   M    M    na
4791
    Use > 60 sec window in date comparison  13.3.3   ok   ok   ok
4836
    Send sub-range GET if Last-Mod strong   13.3.3   na   ok   ok
4841
    Use strong comparison for other req.    13.3.3   M    M    na
4845
    Send entity tag if feasible             13.3.4   S    na   na
4865
    Send weak entity tag if necessary       13.3.4   ok   na   na
4867
    Sent Last-Modified if feasible          13.3.4   S    na   na
4870
    Strong entity tag changes w/ any change 13.3.4   M    na   na
4877
    Weak entity tag changes w/ sign. change 13.3.4   S    na   na
4878
    Use entity tag if provided by server    13.3.4   na   M    M
4893
    Use Last-Mod in simple requests         13.3.4   na   S    S
4897
    Use Last-Mod in sub-range requests      13.3.4   na   ok   ok
4900
    Configure using L-M in sub-range req.   13.3.4   na   S    S
4901
    Use both if both provided               13.3.4   na   S    S
4904
    Send 304 if not consistent w/ conds     13.3.4   MN   na   na
4911
    Use cache entry if not consis w/ conds  13.3.4   na   MN   na
4917
    Store response unless forbidden         13.4     ok   ok   ok
4955
    Use fresh response w/o revalidation     13.4     ok   ok   ok
4956
    Use response after revalidation         13.4     ok   ok   ok
4957
    Violate cache expectation if necessary  13.4     ok   ok   ok
4960
    ???                                     13.4     ?    ?    ?
4974
    Store 200/203/206/300/301/410 resp.     13.4     ok   ok   ok
4988
    Store 206 if no range support           13.4     MN   MN   MN
4991
    Use other responses unless controlled   13.4     MN   MN   MN
4994
    Send end-to-end headers to recipient    13.5.1   M    M    M
5018
    Store end-to-end headers in cache       13.5.1   M    M    M
5020
    Use Connection on future hop-by-hops    13.5.1   M    M    M
5035
    Modify end-to-end headers               13.5.2   na   SN   na  1
5047
    Modify C-Loc/C-MD5/ETag/Last-Mod        13.5.2   na   MN   na  1
5050
    Add C-Loc/C-MD5/ETag/Last-Mod           13.5.2   na   MN   na  1
5051
    Modify Expires in response              13.5.2   na   MN   na  1
5060
    Add Expires to response                 13.5.2   na   ok   na  1
5064
    Set Expires to Date if adding           13.5.2   na   M    na  1
5065
    Mod/add C-Enc/C-Rng/C-Typ if no-transf. 13.5.2   na   MN   na  1
5068

Patterson                                                      ?Page
15Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Mod/add C-Enc/C-Rng/C-Typ if non-trans. 13.5.2   na   ok   na  2
5075
    Add Warning: 214 if transforming        13.5.2   na   M    na  2
5077
    Base authentication on other headers    13.5.2   ok   ok   ok
5083
    Preserve entity-length                  13.5.2   na   M    na  1
5087
    Change transfer-length                  13.5z2   na   ok   na  1
5089
    Combine cache with response on 206      13.5.3   ok   ok   ok
5106
    Delete stored Warning: 1xx              13.5.3   M    M    M
5115
    Retain stored Warning: 2xx              13.5.3   M    M    M
5117
    Replace stored end-to-end headers       13.5.3   M    M    M
5119
    Replace stored end-to-end headers       13.5.3   M    M    M
5123
    Combine sub-range resps. if strong cmp. 13.5.4   ok   ok   ok
5154
    Use most recent resp if not strong cmp. 13.5.4   M    M    M
5168
    Discard other resp if not strong cmp.   13.5.4   M    M    M
5171
    Send Vary when selecting from multiples 13.6     S    S    na
5182
    Use varied cache entry if hdrs not mat. 13.6     MN   MN   MN
5190
    Use varied w/o hdr match w/o checking   13.6     MN   MN   MN
5209
    Send entity tag w/ check request        13.6     S    S    S
5215
    Update cache if same entity tag         13.6     S    S    S
5227
    Send to client if same entity tag       13.6     M    M    M
5228
    Send entity tag if sub-range not complt 13.6     SN   SN   SN
5231
    Send cache entry if response newer      13.6     SN   SN   SN
5239
    Delete cache entry if response newer    13.6     S    S    S
5240
    Secure contents of non-shared cache     13.7     S    S    S
5248
    Store incomplete response               13.8     ok   ok   ok
5258
    Treat incomplete response as partial    13.8     M    M    M
5259
    Combine partial responses               13.8     ok   ok   ok
5260
    Return partial response w/o 206 status  13.8     MN   MN   MN
5262
    Return partial response w/ 200 status   13.8     MN   MN   MN
5264
    Forward 5xx response to client          13.8     ok   ok   ok
5268
    Return cached response if 5xx from srvr 13.8     ok   ok   ok
5269
    Cachable GET/HEAD resp side effects     13.9     SN   na   na
5287
    GET/HEAD have side effects              13.9     ok   na   na
5288
    Treat ? URLs as fresh w/o expiration    13.9     MN   MN   MN
5296
    Send HTTP 1.0 ? responses from cache    13.9     SN   SN   SN
5298
    Invalidate cache on PUT/DELETE/POST     13.10    M    M    M
5322
    Require Location match Host             13.10    M    M    M
5331
    Invalidate cache if request unknown     13.10    S    S    S
5335
    Send non-GET/HEAD req. to server        13.11    M    M    M
5346
    Reply to non-GET/HEAD before response   13.11    MN   MN   MN
5348
    Use new response for current request    13.12    S    S    S
5364
    Store new response                      13.12    ok   ok   ok
5365
    Use new response in future if match     13.12    ok   ok   ok
5366
    Follow 13.5.3 rules for caching         13.12    S    S    S
5369
    Keep history list entries current       13.13    na   na   SN
5382
    Display stored history entry if stale   13.13    na   na   S
5388

16  Requirements summary for Section 14: Header Field Definitions

    ... text about variations from the norm ...

    Notes:
      1   ...

Patterson                                                      ?Page
16Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Media parameters on Accept              14.1     na   ok   ok
5444
    Accept-params on Accept                 14.1     na   ok   ok
5447
    Interpret Q on Accept correctly         14.1     S    S    na
5473
    Send 406 if none acceptable             14.1     S    S    na
5479
    Q on Accept-Charset                     14.2     na   ok   ok
5544
    Send 406 if non acceptable              14.2     S    S    na
5560
    Send 406 if non acceptable              14.3     S    S    na
5612
    Assume client accepts all encodings     14.3     ok   ok   na
5615
    Use identity if available               14.3     S    S    na
5618
    Q on Accept-Language                    14.4     na   ok   ok
5654
    Assume client accepts all languages     14.4     S    S    na
5681
    Send Accept-Language if not configurabl 14.4     na   MN   MN
5693
    Send Accept-Ranges: bytes               14.5     ok   ok   na
5719
    Send Range w/o receiving Accept-Ranges  14.5     na   ok   ok
5723
    Send Accept-Ranges: none                14.5     ok   ok   na
5728
    Send Age: 2147483648 on overflow        14.6     M    M    M
5752
    Send Age with result from cache         14.6     M    M    na
5753
    Use 31-bit math on Age values           14.6     S    S    S
5754
    Send allow with 405 response            14.7     M    M    na
5768
    Follow Allow indications                14.7     na   S    S
5778
    Send Allow with PUT request             14.7     na   ok   ok
5782
    Send Allow in response to PUT           14.7     S    S    na
5785
    Modify Allow                            14.7     na   MN   na
5788
    Accept credentials for same realm       14.8     S    na   na
5806
    Return cached response against rules    14.8     MN   MN   MN
5813
    Return cached response within s-maxage  14.8     ok   ok   ok
5824
    Revalidate response outside s-maxage    14.8     na   M    na
5826
    Revalidate response w/ s-maxage=0       14.8     na   M    na
5830
    Return cached must-revalidate response  14.8     ok   ok   ok
5833
    Revalidate stale must-revalidate resp.  14.8     M    M    M
5835
    Return public response from cache       14.8     ok   ok   ok
5840
    Obey Cache-Control                      14.9     M    M    M
5846
    Pass Cache-Control along                14.9     na   M    na
5857
    Cache private resp in shared cache      14.9.1   MN   MN   MN
5935
    Cache private resp in nonshared cache   14.9.1   ok   ok   ok
5944
    Return C-C: no-cache w/o revalidating   14.9.1   MN   MN   MN
5952
    Return C-C: no-cache w/fldnm w/o reval  14.9.1   ok   ok   ok
5958
    Send C-C: no-cache fields w/o reval     14.9.1   MN   MN   MN
5960
    Send C-C: no-store in req. or response  14.9.1   ok   ok   ok
5976
    Store req./resp if C-C: n-s in request  14.9.1   MN   MN   MN
5977
    Store req./resp if C-C: n-s in resp.    14.9.1   MN   MN   MN
5979
    Store "MUST NOT store" in non-volatile  14.9.1   MN   MN   MN
5982
    Remove "MUST NOT store" from volatile   14.9.1   M    M    M
5983
    Store "MUST NOT store" in history buff. 14.9.1   ok   ok   ok
5989
    Specify expiration time on Expires      14.9.3   ok   na   na
6010
    Specify expiration time via Max-Age     14.9.3   ok   na   na
6012
    Treat Expires <= Date as non-cachable   14.9.3   S    S    S
6032
    Shared cache use stale entry w/o reval. 14.9.3   MN   MN   MN
6049
    Override Expires w/ Max-Age             14.9.3   ok   na   na
6057

Patterson                                                      ?Page
17Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Override expiration in request          14.9.3   na   ok   ok
6068
    Add Warning: 110 to stale response      14.9.3   M    M    M
6093
    Return stale response w/o revalidation  14.9.3   ok   ok   ok
6097
    Include fld. names on e-e reload req.   14.9.4   MN   MN   MN
6135
    Return cached ent. on e-e reload req.   14.9.4   MN   MN   na
6136
    Use either validator                    14.9.4   ok   ok   ok
6160
    Send min-fr./max-stal./max-age w/ no-c  14.9.4   na   SN   SN
6175
    Respond to o-i-c w/ cached ent or 504   14.9.4   S    S    S
6189
    Forward o-i-c cache within group        14.9.4   ok   ok   ok
6193
    Configur to ignore specified expiration 14.9.4   ok   ok   ok
6197
    Send Max-Stale in request               14.9.4   na   ok   ok
6198
    Return C-C: must-reval w/o revalidation 14.9.4   MN   MN   MN
6203
    E-e revalidation for C-C: must-reval.   14.9.4   M    M    M
6205
    Obey Cache-Control: must-revalidte      14.9.4   M    M    M
6211
    Send 504 if cannot reach origin server  14.9.4   M    M    M
6213
    Send C-C: must-reval only when necess.  14.9.4   S    S    na
6215
    Automatically violate C-C: must-reval   14.9.4   MN   MN   MN
6218
    Auto. return unvalidated C-C: must-rev  14.9.4   MN   MN   MN
6219
    Break rules when unconnected            14.9.4   na   ok   ok
6223
    Warn user if breaking rules             14.9.4   na   M    M
6224
    Warn user if breaking rules, all access 14.9.4   na   M    M
6225
    Require confirmation to break rules     14.9.4   na   S    S
6226
    Change hdrs on C-C: no-transform        14.9.5   MN   MN   MN
6264
    Change entity body on C-C: no-transform 14.9.5   MN   MN   MN
6266
    Add informational C-C extensions        14.9.6   ok   ok   ok
6276
    Ignore unrecognized C-C directives      14.9.6   M    M    M
6313
    Forward Connection through proxies      14.10    na   MN   na
6323
    Remove Connection hdrs before forward   14.10    na   M    na
6332
    Send end-to-end hdrs in Connection      14.10    MN   MN   MN
6341
    Consider Connection: Close persistent   14.10    SN   SN   SN
6351
    Send Connection: Close if not pers      14.10    M    M    M
6354
    Remove/ignore Connection hdrs from<=1.0 14.10    M    M    M
6364
    Decode msg body using Content-Encoding  14.11    M    M    M
6376
    Modify content-coding                   14.11    na   ok   na  1
6390
    Send Content-Encoding if not identity   14.11    M    M    M
6395
    Send 415 if unacceptable content-coding 14.11    S    S    na
6399
    List content-codings in application ord 14.11    M    M    M
6403
    Encoding parms on other headers         14.11    ok   ok   ok
6404
    Multiple langs on Content-Language      14.12    ok   ok   ok
6436
    Send Content-Language w/ any media type 14.12    ok   ok   ok
6450
    Send transfer length in Content-Length  14.13    S    S    S
6467
    Send Content-Length when known          14.13    S    S    S
6483
    Send other URI in Content-Location      14.14    ok   ok   ok
6490
    Send Content-Location with variant      14.14    S    S    na
6493
    Send Content-Location when accessible   14.14    S    S    na
6497
    Specify C-L URI in future requests      14.14    na   ok   ok
6509
    Generate Content-MD5                    14.15    ok   na   ok
6544
    Generate Content-MD5                    14.15    na   MN   na
6547
    Check Content-MD5 checksun              14.15    ok   ok   ok
6549
    Remove transfer-encoding before check   14.15    M    M    M
6555
    Multipart Content-MD5                   14.15    ok   ok   ok
6568
    Convert LF to CRLF before MD5           14.15    MN   MN   MN
6577
    Use original line break for MD5         14.15    M    M    M
6579

Patterson                                                      ?Page
18Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send full entity size in Content-Range  14.16    S    S    S
6607
    Single range in Content-Range           14.16    M    M    M
6627
    Absolute positions in Content-Range     14.16    M    M    M
6628
    Ignore content w/ invalid Content-Range 14.16    M    M    M
6635
    Send range * with 416 response          14.16    S    S    na
6638
    Send range * with 206 response          14.16    MN   MN   na
6641
    Send single range resp as multi range   14.16    MN   MN   na
6682
    Send single resp to m-r req as m-r      14.16    ok   ok   na
6684
    Ask for multi range if can't decode     14.16    na   MN   MN
6686
    Return ranges in request order          14.16    S    S    na
6690
    Ignore entire Range hdr if part bad     14.16    S    S    na
6694
    Send 416 if Range not satisfiable       14.16    S    S    na
6702
    Send RFC 1123 form in Date              14.18    M    M    M
6737
    Send Date on 102-499 response if clock  14.18    M    na   na
6745
    Send Date on 100 and 101                14.18    ok   na   na
6749
    Send Date if no clock available         14.18    MN   na   na
6757
    Follow 14.18.1 rules if no clock avail  14.18    M    na   na
6759
    Add Date if caching msg with none       14.18    M    M    M
6761
    Cache msg w/o Date if no clock          14.18    MN   MN   MN
6764
    Synchronize cache clock w/ reference    14.18    S    S    S
6766
    Send date in req only w/ entity body    14.18    na   S    S
6769
    Send date in req if no clock            14.18    na   MN   MN
6771
    Send date subsequent to msg generation  14.18    SN   SN   SN
6774
    Send date of msg generation             14.18    S    S    S
6775
    Send Expires or Last-Modified w/o clock 14.18.1  MN   na   na
6792
    Send Expires known past w/o clock       14.18.1  ok   na   na
6794
    Compare entities from same resource     14.19    na   ok   ok
6806
    Send error if unrecognized Expect       14.20    M    M    na
6822
    Send 417 if expectation not met         14.20    M    M    na
6834
    Send 417 if unrecognized Expect         14.20    M    M    na
6846
    Send 417 if proxy cannot meet expect.   14.20    na   M    na
6852
    Forward Expect header                   14.20    na   M    na
6855
    Follow rules on Expect: 100-continue    14.20.1  M    M    na
6867
    Send 100 or error if Expect: 100-cont   14.20.1  M    M    na
6867
    Forward 100-cont to HTTP 1.1 or unknown 14.20.1  na   M    na
6874
    Forward 100-cont to known HTTP 1.0      14.20.1  na   MN   na
6876
    Send 417 if 100-cont to known HTTP 1.0  14.20.1  na   M    na
6876
    Cache recent HTTP-Versions from servers 14.20.1  na   S    na
6877
    Send 100-cont w/o rcving 100 or 417     14.20.1  na   ok   ok
6883
    Send RFC 1123 date in Expires           14.21    M    M    M
6911
    Treat non-RFC 1123 date as expired      14.21    M    M    M
6922
    Send Expires > 1 year's time            14.21    SN   SN   na
6752
    Send user's email address on From       14.22    na   S    S
6943
    Send From address as RFC 822 mailbox    14.22    na   S    S
6945
    Use From for logging and source ident.  14.22    ok   ok   na
6954
    Use From for access protection          14.22    SN   SN   na
6955
    Robots send From to identify owner      14.22    na   S    S
6964
    Send different host on From             14.22    na   ok   ok
6968
    Send different host on forwarded From   14.22    na   S    na
6970
    Send From w/o user's approval           14.22    na   SN   SN
6973
    Host match original URL                 14.23    na   M    M
6986
    Send Host on HTTP 1.1 req. to Internet  14.23    na   M    M
7002
    Add Host before forwarding to Internet  14.23    na   M    na
7006

Patterson                                                      ?Page
19Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send 400 if Internet request w/o Host   14.23    M    M    na
7008
    Perform req. if entity tag match or *   14.24    ok   ok   na
7041
    Use strong comparison on If-Match tags  14.24    M    M    na
7045
    Perform req. if no entity tags match/*  14.24    MN   MN   na
7049
    Send 412 if no entity tags match or *   14.24    M    M    na
7050
    Ignore If-Match if resp. not 200/412    14.24    M    M    na
7057
    Perform If-Match: * req. & ent. exists  14.24    S    S    na
7059
    Perform If-Match: * req. & ent. not ex. 14.24    MN   MN   na
7062
    Include If-Match in PUT et al.          14.24    na   ok   ok
7064
    Perform PUT et al. if ent. tag not mat. 14.24    MN   MN   na
7065
    Send 304 if not mod since valid date    14.25    S    S    na
7119
    Perform If-None-Match req. if a match   14.26    MN   MN   na
7183
    Send 304 w/ ETag on If-None-Match match 14.26    S    S    na
7186
    Send 415 if If-None-Match error         14.26    M    M    na
7189
    Perform If-None-Match req. if no match  14.26    ok   ok   na
7196
    Ignore If-Modified-Since if I-N-M       14.26    M    M    na
7203
    Send 304 on I-N-M no match w/ I-M-S     14.26    MN   MN   na
7204
    Perform If-None-Match: * if not exist   14.26    ok   ok   na
7207
    Ignore If-None-Match if not 2xx or 304  14.26    M    M    na
7213
    Perform If-None-Match: * if exists      14.26    MN   MN   na
7217
    Perform If-None-Match: * if not exist   14.26    S    S    na
7220
    Send last-mod date on If-Range          14.27    na   ok   ok
7255
    Send If-Range only with Range           14.27    na   S    S
7263
    Ignore If-Range w/o Range               14.27    M    M    na
7263
    Send 206 w/ range when If-Range matches 14.27    S    S    na
7268
    Send 200 w/ entity when If-Range no mat 14.27    S    S    na
7270
    Perform If-Unmodified-Since if not mod  14.28    S    S    na
7278
    Perform If-Unmodified-Since if modified 14.28    MN   MN   na
7283
    Send 412 if If-Unmodified-Since & mod.  14.28    M    M    na
7283
    Ignore If-Unmod.-Since if not 2xx/412   14.28    S    S    na
7294
    Send Last-Modified > server's msg d/t   14.29    MN   na   na
7327
    Send msg d/t instead of future L-M      14.29    M    na   na
7330
    Obtain last-mod d/t close to Date: d/t  14.29    S    na   na
7333
    Send Last-Modified whenever feasible    14.29    S    S    na
7339
    Send preferred URI on Location          14.30    S    S    na
7348
    Update Max-Forwards on TRACE/OPTIONS    14.31    na   M    na
7387
    Forward TRACE/OPTIONS w/ Max-Forwards:0 14.31    na   MN   na
7389
    Respond to TRACE/OPTIONS w/ M-F: 0      14.31    na   M    na
7389
    Decrement Max-Forwards by 1 before fwd  14.31    na   M    na
7391
    Ignore Max-Forwards on non-TRACE/OPT.   14.31    ok   ok   na
7394
    Require Pragma-consistent behavoir      14.32    ok   ok   ok
7405
    Forward req if Pragma: no-cache         14.32    na   S    S
7414
    Send Cache-Control: n-c w/ Pragma: n-c  14.32    na   S    S
7418
    Pass Pragma with request                14.32    na   M    na
7419
    Ignore Pragma if not relevant           14.32    S    S    S
7426
    Treat P: n-c as Cache-Control: n-c      14.32    S    S    S
7428
    Send Proxy-Authenticate on 407          14.33    na   M    na
7437
    Pass Proxy-Authenticate when forwarding 14.33    na   SN   na
7451
    Relay Proxy-Authorization credentials   14.33    na   ok   na
7474
    One or more byte ranges in Range        14.45.1  ok   ok   ok
7493
    Range last-byte-pos >= first-byte-pos   14.35.1  M    M    M
7518
    Ignore Range if any invalid ranges      14.35.1  M    M    M
7522
    Send 416 if Range not satisfiable       14.35.1  S    S    na
7548

Patterson                                                      ?Page
20Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Send 206 w/ ranges if Range satisfiable 14.35.1  S    S    na
7550
    Send Range in GET requests              14.35.2  na   ok   ok
7579
    Ignore Range in request                 14.35.2  ok   ok   na
7585
    Return requested range only             14.35.2  na   S    na
7609
    Store entire entity in cache            14.35.2  na   S    na
7610
    Send Referer if no referring URI        14.46    na   MN   MN
7627
    Interpret Referer rel. to Request-URI   14.36    S    S    na
7637
    Send fragment in Referer                14.36    na   MN   MN
7638
    Send Retry-After in 3xx response        14.47    ok   ok   na
7646
    Modify Server                           14.38    na   MN   na
7684
    Send Via instead of Server              14.38    na   S    na
7685
    Send Connection: TE w/ TE               14.39    na   M    M
7721
    Send Trailer in chunked msg w/ trailer  14.40    S    S    S
7770
    Send headers in trailer w/o Trailer     14.40    SN   SN   SN
7775
    Send headers in trailer w/o TE: chunked 14.40    MN   MN   na
7779
    Send Trans-Enc, Cont-Len, Trailer in t. 14.40    MN   MN   MN
7783
    Send transfer-codings in order applied  14.41    M    M    M
7813
    Send parameters on Transfer-Encoding    14.41    ok   ok   ok
7814
    Send Upgrade in 101 response            14.42    M    M    na
7826
    Send HTTP reply to Updgrade req. first  14.42    M    M    na
7853
    Send Connection: Upgrade w/ Upgrade     14.42    M    M    M
7857
    Send User-Agent in requests             14.43    na   na   S
7884
    Send Vary in cachable resp. w/ neg.     14.44    S    S    na
7911
    Send Vary in non-cachable resp. w/ neg. 14.44    ok   ok   na
7915
    Cache assume same resp w/ Vary info     14.44    ok   ok   ok
7929
    Send Vary: *                            14.44    na   MN   na
7941
    Send Via in requests and responses      14.45    na   M    na
7947
    Send pseudonym in Via                   14.45    na   ok   na
7983
    Assume default port if none on Via      14.45    ok   ok   ok
7983
    Append Via to end of list               14.45    na   M    na
7987
    Send comments on Via                    14.45    na   ok   na
7991
    Remove comments from Via before fwding  14.45    na   ok   na
7994
    Forward names/ports outside firewall    14.45    na   SN   na
8006
    Fwd names/ports outside fw if enabled   14.45    na   S    na
8007
    Send pseudonym outside fw if not enab.  14.45    na   S    na
8009
    Combine Via for privacy reasons         14.45    na   ok   na
8013
    Combine Via under mixed control         14.45    SN   SN   SN
8023
    Combine Via w/ different protocols      14.45    MN   MN   MN
8025
    More than 1 Warning in response         14.46    ok   ok   ok
8060
    Send natural-language Warning warn-text 14.46    S    S    S
8062
    Use avail. knowledge for warn-text lang 14.46    ok   ok   ok
8064
    Encoded non-ISO-8859-1 warn-text        14.46    M    M    M
8069
    Append Warning to list                  14.46    S    S    S
8074
    Delete received Warnings                14.46    MN   MN   MN
8075
    Delete added Warnings if validated      14.46    S    S    S
8077
    Add Warnings from validation process    14.46    M    M    M
8079
    Display most important Warnings first   14.46    na   na   S
8086
    Send Warnings in importance order       14.46    S    S    S
8094
    ???                                     14.46    ?    ?    ?
8104
    ???                                     14.46    ?    ?    ?
8104
    Delete 1xx Warning if validated         14.46    M    M    M
8108
    Generate 1xx Warnings when validating   14.46    ok   ok   na
8109
    Generate 1xx Warnings                   14.46    na   na   MN
8110

Patterson                                                      ?Page
21Ù

Internet-Draft         HTTP requirements summary         20 October
1998

    Delete 2xx Warnings if validated        14.46    MN   MN   MN
8115
    Send Warning 110 if stale               14.46    M    M    M
8121
    Send Warning 111 if can't validate      14.46    M    M    M
8124
    Send Warning 112 if disconnected        14.46    S    S    S
8129
    Send Warning 113 if guessed > 24 hrs    14.46    M    M    M
8133
    Send Warning 199 for log or human use   14.46    ok   ok   ok
8138
    Send Warning 199 for automated use      14.46    MN   MN   MN
8140
    Send Warning 214 if entity transformed  14.46    M    M    M
8144
    Send Warning 299 for log or human use   14.46    ok   ok   ok
8152
    Send Warning 299 for automated use      14.46    MN   MN   MN
8154
    Send warn-date=Date on HTTP 1.0 Warning 14.46    M    M    na
8164
    Delete warning-value w/ warn-date!=Date 14.46    M    M    M
8169
    Delete Warning if empty                 14.46    M    M    M
8173
    Send WWW-Authenticate in 401 response   14.47    M    na   na
8178

17  Requirements summary for Section 15: Security Considerations

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Prevent private information leakage     15.1     na   na   S
8207
    Provide control over sensitive info     15.1.2   S    S    S
8240
    Make Server configurable                15.1.2   S    na   na
8246
    Protect info transiting firewall        15.1.2   na   S    na
8249
    Remove or sanitize inside-fw Via        15.1.2   na   S    na
8252
    Send From without user control          15.1.2   na   na   SN
8264
    Allow From configuration                15.1.2   na   na   M
8265
    Send Referer from HTTPS to HTTP         15.1.3   na   na   SN
8293
    Use GET forms for sensitive data        15.1.3   SN   na   na
8297
    Warn user of privacy loss from headers  15.1.4   na   na   S
8343
    Restrict documents to intended areas    15.2     S    na   na
8349
    Prevent unintended file access          15.2     M    na   na
8352
    Disallow ".." for unintended access     15.2     M    na   na
8357
    Protect unintended access to ctl files  15.2     M    na   na
8361
    Use DNS resolver                        15.3     na   na   S
8375
    User platform DNS cache if available    15.3     na   na   S
8379
    Honor DNS TTL if caching results        15.3     na   na   M
8385
    Ensure Location & C-Loc in scope        15.4     M    na   na
8406

18  Requirements summary for Section 16: Acknowledgments

    None.

19  Requirements summary for Section 17: References

    None.

Patterson                                                      ?Page
22Ù

Internet-Draft         HTTP requirements summary         20 October
1998

20  Requirements summary for Section 18: Authors' Addresses

    None.

21  Requirements summary for Section 19: Appendices

    ... text about variations from the norm ...

    Notes:
      1   ...

    Feature summary                         Section Srvr Prox Clnt Note
Line
    ===============                         ======= ==== ==== ==== ====
=====

    Parse Status- & Request-Line tolerantly 19.3     S    S    S
9011
    Accept extra space in S-L & R-L         19.3     S    S    S
9012
    Use lowest common denominator charset   19.3     S    na   S
9020
    Assume RFC850-date > 50 years is past   19.3     S    S    S
9029
    Store Expires date as earlier           19.3     ok   ok   ok
9032
    Store Expires date as later             19.3     MN   MN   MN
9033
    Calculate expiration in GMT             19.3     M    M    M
9036
    Use local timezone in age/expir cal/cmp 19.3     MN   MN   MN
9037
    Convert non-GMT d/t conservatively      19.3     M    M    M
9040
    Provide conversion to strict MIME       19.4     na   S    na
9057
    Send MIME-Version                       19.4.1   ok   ok   ok
9072
    Convert breaks to CRLF in HTTP->MIME    19.4.2   S    S    na
9100
    Convert dates to HTTP-date              19.4.3   S    S    na
9123
    Fix Content-Encoding in HTTP->MIME      19.4.4   M    M    na
9133
    Remove C-Transfer-Encod in MIME->HTTP   19.4.5   M    M    na
9144
    Add C-T-E in HTTP->MIME if helpful      19.4.5   S    S    na
9152
    Remove Transfer-Encoding in HTTP->MIME  19.4.6   M    M    na
9160
    Respect directory in C-Disp filename    19.5.1   na   na   SN
9243
    Respect only terminal in C-D filename   19.5.1   na   na   S
9246
    Support Host                            19.6.1.1 M    M    M
9326
    Send Host in HTTP 1.1 request           19.6.1.1 na   M    M
9328
    Send 400 in no Host in HTTP 1.1 request 19.6.1.1 M    M    na
9330
    Acccept absolute URIs                   19.6.1.1 M    M    na
9333
    Wait for body before sending 100        19.6.3   MN   na   na
9453

22  Requirements summary for Section 20: Full Copyright Statement

    None.

23  Requirements summary for Section 21: Index

    None.

24 Security Considerations

   This document only summarizes the specification in ?2Ù, it does not
   introduce any new features to HTTP.  Therefore, there are no
security

Patterson                                                      ?Page
23Ù

Internet-Draft         HTTP requirements summary         20 October
1998

   considerations particular to the requirements summary itself.

25 Acknowledgments

   Many thanks to Jeff Mogul at DECWRL for defining the form this
   document should take in his Internet Draft
   <draft-ietf-http-req-sum-00.txt>, from which most of the
introductory
   material was lifted.

26 References

   1.  R. Braden.  Requirements for Internet Hosts -- Communication
   Layers.  RFC 1122, Internet Engineering Task Force, October, 1989.

   2.  R. Fielding, J. Gettys, J. C. Mogul, H. Frystyk, L. Masinter,
   P. Leach, and T. Berners-Lee.  Hypertext Transfer Protocol --
HTTP/1.1.
   Internet-Draft draft-ietf-http-v11-spec-rev-05, HTTP Working Group,
   September 11, 1998.

27 Author's address

   Ross A. Patterson
   VM Software Division
   Sterling Software, Inc.
   1800 Alexander Bell Drive
   Reston, VA  20191  USA
   Email: [email-masked]

Patterson                                                      ?Page
24Ù

---

From: Gayathri Ramakrishnan <[email-masked]>
Date: Thu, 25 Apr 2002 15:11:30 +0530

Hi Magnus,

Some comments on the RTSP header table :

- Bandwidth request header can be considered as 'Not
  Applicable' in case of the OPTIONS request.
- Retry-After header can be made 'Optional' for 
  'Get Parameter' and 'Set Parameter', instead of making
   it as 'Not Applicable'
-  Location header is'Not Applicable' for all methods
   other than DESCRIBE and SETUP

Some headers that are missing from the table are :

If-Match : This header is optional for 'SETUP' and 'Not
	    Applicable' for other methods
Host: This header is Optional for all methods
Timestamp(R/r) : Optional for all methods

According to the revised draft version of RTSP RFC, there
is a mention about a header called 'Accept-Ranges'. This can
also be included in the table as :

Accept-Ranges: Optional for PLAY and 'Not Applicable' for other
methods.

Thanks,
Gayathri

> >Please find the doc attached.

_______________________________________________
mmusic mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/mmusic

---

From: Magnus Westerlund <[email-masked]>
Date: Thu, 25 Apr 2002 17:26:47 +0200

Thanks,

for the review. I hope also some other can review this table. See 
comments to your comments below. I attach a updated version of the 
header table. A large shortcoming in this table is the proxy column 
which is only set for two headers which are the only I have looked at. 
So if you have knowledge about proxies please think what applies for the 
different headers.

Regards

/Magnus 

>  'Get Parameter' and 'Set Parameter', instead of making
What is your opinion on the other 'Not Applicable' with question marks 
for this header.

>Timestamp(R/r) : Optional for all methods
Timestamp was not as simple as your comment here made it. It is a 
optional in request but mandatory to copy from a request to the response.

>Accept-Ranges: Optional for PLAY and 'Not Applicable' for other
My interpretation is that this header is only usable in responses.

-- 

Magnus Westerlund 

version 2 020425

To Do:

Methods

Headers

   

Accept-Ranges      r           -   -   -   -   -   -   o   -   -   -   -
Bandwidth          R           o   -   -   o   -   o   o   -   -   -   -
Host                           o   o   o   o   o   o   o   o   o   o   o

If-Match           R           -   -   -   -   -   o   -   -   -   -   -
Location           3xx         m   -   -   -   -   m   -   -   -   -   -
Retry-After        3xx,503     o   -   o   o   -?  o   -?  -?  -?  -   -
Timestamp          R           o   o   o   o   o   o   o   o   o   o   o
Timestamp          c           m   m   m   m   m   m   m   m   m   m   m

---

From: Gayathri Ramakrishnan <[email-masked]>
Date: Mon, 29 Apr 2002 19:14:16 +0530

Hi Magnus,

Attached is the file containing what headers
apply to a proxy. Here I have considered the case
of both a caching proxy as well as a non-caching proxy.

As for the case of the 'Retry-After' header:

In case of a PAUSE,'Retry-After' header cannot be present
in the response ,as the client will not prefer to continue 
receiving the media data after issuing a PAUSE.

In case of a PLAY, 'Retry-After' header should be allowable
in the response.
The above could hold true in case of multiple PLay Requests.

Lets say we assume a scenario with 3 play requests having
range as 10 - 20 , 25-30 , 35 - 40. 
Then incase when the second play request (25 - 30) gets 
a 'Retry-After' response , the media client implementation should 
take care of only sending the play request with range as
25 - 30.

or

Would it be more appropriate to assume that once the connection
establishment phase is over (i.e with setup - setting of 
transport parameters) then we would never have 
a 'Retry-After' header in the response.

I am not sure as to whether we need to look into from 
this perspective or mark it as "not applicable " for 
play request.

Thanks,
- Gayathri

Magnus Westerlund wrote:
>   ------------------------------------------------------------------------

                 Caching   Non-Caching
                   Proxy     Proxy

Accept-Encoding      r         r
Accept-Language      r         r
Cache-control        r
Content-Encoding R   r         r
Content-Encoding r   r         r
Content-Encoding 4xx r         r
Content-Language R   r         r
Content-Language r   r         r
Content-Language 4xx r         r
Content-Length R     r         r
Content-Length r     r         r
Content-Length 4xx   r         r
Date                 m         m
Expires              r         r
From 4xx             a         a
If-Modified-Since R  r
Last-Modified r      r
Proxy-Authenticate   a         a
Proxy-Require        r         r
Public r             a         a
Public 501           a         a
Server r             a         a

---

From: Magnus Westerlund <[email-masked]>
Date: Tue, 30 Apr 2002 16:28:06 +0200

Hi,

I will start with commenting on your proxy table.

- Data header: I believe it should be both a and m attribute for proxies.

- From header: I don't see any harm in allowing a proxy to add to the 
from field but what is the reason for it? Shouldn't the from filed 
contain the email of the responsible request issuing user? Shouldn't 
this header also have an "r"? Also don't understand the 4xx designation 
on this header. If the from header shall be usable it must be added onto 
request.

- if-match header: This seem to also be a header requiring "r" note.

- proxy-authenticate: In my opinion this should have an "amr" usage. I 
base this on what the HTTP spec says about the header.

- Proxy-require: Should this header also be possible to add/concatenate 
by proxies?

- public seems to to require that a proxy can both add, delete and 
modify the header and of course read it, making it "admr".

- Server: I don't agree that a proxy may add this header. RFC 2616 has a 
MUST NOT modify this header.

>receiving the media data after issuing a PAUSE.
Yes, I agree,

>this perspective or mark it as "not applicable " for 
I think we can assume that the client will not receive a 3xx response 
after setup. If the server want's to do redirect at that time it should 
use the REDIRECT method. The question is on which methods you could get 
service unavailable. For me it seems reasonable that you should not get 
that answer after the client has established a session. So I think we 
can remove the Retry-after from all methods except the stateless and setup.

Cheers

Magnus Westerlund