Search the web
Sign In
New User? Sign Up
http-compliance · discussion about HTTP compliance testing and tests
? Already a member? Sign in to Yahoo!

Yahoo! Groups Tips

Did you know...
Hear how Yahoo! Groups has changed the lives of others. Take me there.

Best of Y! Groups

   Check them out and nominate your group.
Having problems with message search? Fill out this form to ensure your group is one of the first to be migrated to the new message search system.

Messages

  Messages Help
Advanced
Test Cases / Plan for doing http compliance testing   Message List  
Reply | Forward Message #38 of 117 |
Re: [http-compliance] Test Cases / Plan for doing http compliance testing



Actually, I was refering to the attached draft (just found it; got it
from Ross about a year ago). Ross wanted to make sure it's understood
it isn't official, supported, current, etc.

It's been through an EBCDIC system at least once, so the character
encoding is a bit funny in places...

Cheers



On Mon, Aug 13, 2001 at 12:20:35PM -0600, Carl Kugler wrote:
>
> Note that these reports are from around 1998, so the implementations might
> be more compliant now.
>
> -Carl
>
>
>
>
>
> Alex Rousskov
> <rousskov@measurement-fa To:
http-compliance@yahoogroups.com
> ctory.com> cc: gaya377@...
> Subject: Re:
[http-compliance] Test Cases / Plan for doing http compliance
> 08/13/2001 11:08 AM testing
> Please respond to
> http-compliance
>
>
>
>
>
>
> On Mon, 13 Aug 2001, Carl Kugler wrote:
>
> > Here is a feature checklist: http://www.agranat.com:1998/
> >
> > Also, see http://www.w3.org/Protocols/HTTP/Forum/Reports/ for reports on
> > existing implementations.
>
> This is a cool compilation! While the items are just "features" and
> many are not really testable protocol items, it is very handy indeed.
>
> The second URL can also be used to verify my assertion that no serious
> HTTP application is fully HTTP/1.1 compliant (if you trust internal
> testing efforts of Netscapes and Microsofts of the world, of course).
>
> Thanks a lot,
>
> Alex.
>
>
> To unsubscribe from this group, send an email to:
> http-compliance-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>
>
>
>
>
>
> To unsubscribe from this group, send an email to:
> http-compliance-unsubscribe@egroups.com
>
>
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>

--
Mark Nottingham
http://www.mnot.net/



Thu Aug 16, 2001 1:11 am

mnot@...
Send Email Send Email



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
<http-wg@...>. 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 <www-talk@...> 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: RossP@...
























Patterson Page 24Ů


Forward
Message #38 of 117 |
Expand Messages Author Sort by Date

Hi, I would like to know if there is a tabularised checklist kind of a thing available anywhere, so that we can verify the http compliance of a component...
gaya377@...
Send Email
Aug 10, 2001
9:14 am

... Yes. RFC 2616 is, essentially, a list of MUST and SHOULD (and MAY) cases. A table would have to consist of pointers to RFC paragraphs/sections. Some...
Alex Rousskov
rousskov@...
Send Email
Aug 10, 2001
1:33 pm

One of the 2616 authors used to have a checklist of requirements sitting around... I think I have a reference, will have to dig around. Anyway, it was really...
Mark Nottingham
mnot@...
Send Email
Aug 10, 2001
10:53 pm

Here is a feature checklist: http://www.agranat.com:1998/ Also, see http://www.w3.org/Protocols/HTTP/Forum/Reports/ for reports on existing implementations. ...
Carl Kugler
kugler@...
Send Email
Aug 13, 2001
4:46 pm

... This is a cool compilation! While the items are just "features" and many are not really testable protocol items, it is very handy indeed. The second URL...
Alex Rousskov
rousskov@...
Send Email
Aug 13, 2001
5:09 pm

Note that these reports are from around 1998, so the implementations might be more compliant now. -Carl Alex Rousskov <rousskov@measurement-fa To:...
Carl Kugler
kugler@...
Send Email
Aug 13, 2001
6:21 pm

Actually, I was refering to the attached draft (just found it; got it from Ross about a year ago). Ross wanted to make sure it's understood it isn't official,...
Mark Nottingham
mnot@...
Send Email
Aug 16, 2001
1:11 am
Advanced

Copyright Š 2009 Yahoo! Inc. All rights reserved.
Privacy Policy - Terms of Service - Guidelines - Help