- From: Larry Masinter <masinter@parc.xerox.com>
- Date: Wed, 30 Sep 1998 07:18:43 PDT
- To: iesg-secretary@ietf.org
- Cc: http-wg@cuckoo.hpl.hp.com
This implementation report is for http-v11-spec-rev-05 &
http-authentication-03 to progress to Draft Standard.
This report is abbreviated; see
http://www.w3.org/Protocols/HTTP/Forum/Reports/
for more explanation and individual implementation reports. Many
thanks to the contributors who took the time to report on their
systems, and to Jim Gettys for accumulating the results and
encouraging sufficient testing and reporting.
We have surveyed implementations for whether each feature in these
specifications have been tested against independent interoperable
implementations. In the survey, nearly all features have had more than
two clients, servers, and proxies tested. Since the survey was
performed, almost all of the _remaining_ features have been tested,
and we feel confident in bringing forward the specifications as Draft
Standard at this point.
We have implementation & testing reports from 20 implementations:
* libwww-perl NG-alpha-0.11 from Aas Software: a Perl HTTP
client library (Gisle Aas)
* HTTPClient V0.4-dev from Ronald Tschalaer: a client library in Java
* libwww 5.1k from the World Wide Web Consortium: a client library in C,
with various tools built on top (Henrik Frystyk Nieslen)
* Internet Explorer 4 from Microsoft Corporation: a full-feature web
browser (Yaron Goland)
* Netscape Navagator and Communicator 5 from Netscape Communication
Corporation (Gagan Saksena): a full-feature web browser and editor
* Netscape Enterprise Server 3.51 from Netscape Communication
Corporation: a HTTP/1.1 server (Mike Belshe)
* Apache 1.3b6 from the Apache Group: a HTTP/1.1 Server and incomplete
caching proxy (Roy Fielding)
* DMKHTD 1.06f from Dave Kristol, Bell Labs: a HTTP/1.1 Server
* Microsoft IIS 4.0 from Microsoft Corporation: a HTTP/1.1 Server
(Henry Sanders)
* WN 2.0.0 from John Franks, Northwestern University Math Department:
a HTTP/1.1 Server
* SRE-http 1.3a from Daniel Hellerstein, USDA: a HTTP/1.1 Server
* HASS 1.00d.a from Applied Theory Communications: a Application
Server Suite (Patrick McManus)
* Microsoft Proxy Server 2.0 from Microsoft Corporation a HTTP/1.1
Caching Proxy server (Lester Waters)
* CL-HTTP 67.47 from John Mallery, MIT AI Lab: a combined sever and
caching proxy, including a client and Web Walker application
* Jigsaw 2.0beta from the World Wide Web Consortium, a combined server
and caching proxy (Yves Lafon)
* Raptor Firewall 5.1 from Axent Technologies, a HTTP/1.1 firewall
Proxy (no caching) (Robert Polansky)
* GiambyNetGrabber 0.65 from GiambiSoft: a client Internet mirroring
tool (Giambattista Bloisi)
* Millicent Proxy 1.0 (3 separate implementations) from Digital
Equipment Corporation: the MilliCent microcommerce system, including
Server, Proxy and Gateway (reverse proxy) (Steve Glassman). The
separate implementations were by different people at different
geographical locations in different programming languages.
Table of Results:
Each implementation was surved to review the http-spec-v11-rev
document and the http-authentication document to review each section
for whether all of the features in that section were implemented and
tested for interoperability of that feature against a separate
independent implementation. The codes below indicate different
responses:
't' tested against another independent implementation
'y' implemented but not tested against independent implementation
'n' not implementated
'-' not applicable to this type of implementation
Clients |Servers | Proxies |Feature
11t 0y 3n|13t 1y 4n| 5t 0y 3n|H 8.1 Persistent Connections
7t 0y 5n| 3t 1y 4n| 3t 0y 4n|H 8.2.3 Automatic retrying
5t 3y 5n| 5t 6y 7n| 3t 2y 3n|H 8.2.4 100 (Continue) status
5t 1y 7n| 7t 3y 8n| 3t 1y 4n|H 9.2 OPTIONS
14t 0y 0n|17t 1y 0n| 8t 0y 0n|H 9.3 GET
13t 0y 1n|17t 1y 0n| 8t 0y 0n|H 9.4 HEAD
13t 0y 0n|16t 2y 0n| 8t 0y 0n|H 9.5 POST
8t 1y 4n| 9t 3y 6n| 4t 0y 4n|H 9.6 PUT
5t 2y 6n| 5t 4y 9n| 2t 1y 5n|H 9.7 DELETE
5t 2y 5n| 6t 6y 5n| 2t 2y 4n|H 9.8 TRACE
6t 3y 4n| 4t 3y 7n| 3t 3y 2n|H 9.9 CONNECT
8t 2y 3n| 6t 7y 5n| 3t 2y 3n|H 10.1.1 100 Continue
2t 2y 9n| 2t 3y 13n| 2t 1y 5n|H 10.1.2 101 Switching Protocols
14t 0y 0n|17t 1y 0n| 8t 0y 0n|H 10.2.1 200 OK
5t 2y 5n| 5t 4y 8n| 2t 1y 4n|H 10.2.2 201 Created
4t 1y 7n| 5t 1y 12n| 2t 0y 6n|H 10.2.3 202 Accepted
3t 1y 8n| 4t 1y 13n| 2t 0y 6n|H 10.2.4 203 Non-Authoritative Info
6t 3y 5n| 7t 2y 9n| 3t 1y 4n|H 10.2.5 204 No Content
3t 1y 8n| 4t 0y 14n| 2t 0y 6n|H 10.2.6 205 Reset Content
7t 1y 5n| 6t 5y 7n| 3t 1y 4n|H 10.2.7 206 Partial Content
4t 2y 7n| 4t 3y 11n| 2t 1y 5n|H 10.3.1 300 Multiple Choices
11t 2y 1n|13t 2y 3n| 7t 0y 1n|H 10.3.2 301 Moved Permanently
7t 2y 5n|10t 3y 5n| 4t 0y 4n|H 10.3.3 302 Found
5t 4y 5n| 4t 3y 11n| 2t 2y 4n|H 10.3.4 303 See Other
11t 1y 1n|16t 1y 1n| 8t 0y 0n|H 10.3.5 304 Not Modified
3t 5y 6n| 2t 3y 12n| 2t 2y 4n|H 10.3.6 305 Use Proxy
7t 5y 2n| 7t 1y 10n| 5t 1y 2n|H 10.3.7 307 Temporary Redirect
12t 0y 1n|12t 5y 1n| 7t 0y 1n|H 10.4.1 400 Bad Request
12t 2y 0n|16t 2y 0n| 8t 0y 0n|H 10.4.2 401 Unauthorized
3t 6y 3n| 3t 5y 10n| 3t 4y 1n|H 10.4.3 402 Payment Required
10t 2y 1n|12t 5y 1n| 7t 1y 0n|H 10.4.4 403 Forbidden
12t 0y 1n|15t 3y 0n| 8t 0y 0n|H 10.4.5 404 Not Found
7t 2y 4n| 7t 6y 5n| 4t 1y 3n|H 10.4.6 405 Method Not Allowed
6t 3y 4n| 5t 4y 9n| 3t 2y 3n|H 10.4.7 406 Not Acceptable
11t 2y 1n| 8t 0y 7n| 7t 0y 1n|H 10.4.8 407 Proxy Auth Required
4t 3y 7n| 4t 3y 10n| 2t 0y 6n|H 10.4.9 408 Request Timeout
4t 3y 6n| 3t 4y 11n| 2t 1y 5n|H 10.4.10 409 Conflict
4t 2y 7n| 4t 0y 14n| 2t 0y 6n|H 10.4.11 410 Gone
4t 5y 5n| 4t 5y 9n| 2t 2y 4n|H 10.4.12 411 Length Required
4t 4y 5n| 5t 6y 7n| 2t 2y 4n|H 10.4.13 412 Precondition Failed
3t 4y 6n| 4t 2y 12n| 2t 1y 5n|H 10.4.14 413 Req Entity Too Large
5t 2y 6n| 3t 2y 13n| 2t 1y 5n|H 10.4.15 414 Request-URI Too Long
5t 2y 6n| 4t 2y 12n| 3t 0y 5n|H 10.4.16 415 Unsupported Media Type
4t 4y 5n| 3t 5y 10n| 3t 1y 4n|H 10.4.17 416 range not satisfiable
2t 4y 7n| 4t 3y 11n| 2t 1y 5n|H 10.4.18 417 Expectation|Failed
6t 2y 4n| 7t 7y 4n| 4t 1y 3n|H 10.5.1 500 Internal Server Error
6t 2y 4n| 7t 8y 3n| 4t 1y 3n|H 10.5.2 501 Not Implemented
4t 2y 6n| 3t 2y 10n| 2t 1y 5n|H 10.5.3 502 Bad Gateway
6t 3y 4n| 5t 3y 10n| 3t 2y 3n|H 10.5.4 503 Service Unavailable
5t 3y 4n| 4t 4y 7n| 3t 2y 3n|H 10.5.5 504 Gateway Timeout
4t 2y 6n| 4t 6y 8n| 2t 1y 5n|H 10.5.6 505 Version Not Supported
4t 4y 5n| 6t 6y 6n| 2t 2y 4n|H 13.3.3 Strong entity tags
1t 5y 7n| 3t 5y 10n| 1t 3y 4n|H 13.3.3 Weak entity tags
12t 0y 1n|13t 2y 3n| 8t 0y 0n|H 14.1 Accept
8t 1y 4n| 9t 3y 6n| 5t 0y 3n|H 14.2 Accept-Charset
9t 1y 4n| 6t 6y 6n| 4t 1y 3n|H 14.3 Accept-Encoding
7t 2y 4n|10t 3y 5n| 4t 1y 3n|H 14.4 Accept-Language
6t 2y 5n| 6t 6y 6n| 2t 2y 4n|H 14.5 Accept-Ranges
7t 1y 5n| 5t 2y 4n| 4t 1y 3n|H 14.6 Age
3t 3y 6n| 7t 8y 3n| 2t 3y 3n|H 14.7 Allow
12t 0y 2n|12t 5y 1n| 7t 0y 1n|H 14.8 Authorization
10t 2y 1n|12t 5y 1n| 7t 1y 0n|H 14.9 Cache-Control
14t 0y 0n|13t 4y 1n| 8t 0y 0n|H 14.10 Connection
11t 2y 1n|10t 6y 2n| 6t 1y 1n|H 14.11 Content-Encoding
5t 3y 5n| 7t 6y 5n| 3t 2y 3n|H 14.12 Content-Language
13t 0y 1n|14t 3y 1n| 8t 0y 0n|H 14.13 Content-Length
8t 1y 4n| 5t 5y 8n| 4t 1y 3n|H 14.14 Content-Location
3t 1y 10n| 4t 5y 9n| 2t 1y 5n|H 14.15 Content-MD5
8t 1y 4n| 6t 7y 5n| 4t 1y 3n|H 14.16 Content-Range
12t 0y 1n|15t 3y 0n| 8t 0y 0n|H 14.17 Content-Type
12t 0y 1n|15t 3y 0n| 8t 0y 0n|H 14.18 Date
6t 3y 4n| 7t 7y 4n| 3t 2y 3n|H 14.19 ETag
4t 1y 9n| 5t 4y 9n| 2t 1y 5n|H 14.20 Expect
8t 0y 5n|10t 4y 4n| 5t 0y 3n|H 14.21 Expires
6t 3y 4n| 4t 4y 8n| 2t 3y 3n|H 14.22 From
14t 0y 0n|15t 3y 0n| 8t 0y 0n|H 14.23 Host
5t 3y 4n| 6t 7y 5n| 2t 3y 3n|H 14.24 If-Match
12t 0y 1n|16t 2y 0n| 8t 0y 0n|H 14.25 If-Modified-Since
4t 2y 7n| 6t 6y 6n| 2t 2y 4n|H 14.26 If-None-Match
5t 1y 7n| 3t 6y 9n| 2t 1y 5n|H 14.27 If-Range
5t 2y 5n| 8t 6y 4n| 3t 2y 3n|H 14.28 If-Unmodified-Since
9t 0y 4n|13t 2y 3n| 5t 0y 3n|H 14.29 Last-Modified
10t 1y 3n| 9t 5y 4n| 4t 1y 3n|H 14.30 Location
4t 2y 6n| 3t 2y 10n| 3t 2y 3n|H 14.31 Max-Forwards
10t 2y 1n|12t 3y 3n| 7t 1y 0n|H 14.32 Pragma
12t 1y 1n| 8t 0y 5n| 7t 0y 1n|H 14.33 Proxy-Authenticate
12t 1y 1n| 8t 0y 5n| 7t 0y 1n|H 14.34 Proxy-Authorization
7t 2y 4n| 6t 6y 6n| 3t 2y 3n|H 14.35 Range
8t 1y 5n| 8t 3y 6n| 4t 0y 4n|H 14.36 Referer
3t 3y 8n| 4t 3y 11n| 2t 2y 4n|H 14.37 Retry-After
6t 2y 4n| 9t 6y 3n| 3t 2y 3n|H 14.38 Server
3t 3y 8n| 2t 2y 14n| 1t 1y 6n|H 14.39 TE
3t 2y 9n| 1t 2y 15n| 0t 2y 6n|H 14.40 Trailer
11t 1y 2n|10t 6y 2n| 6t 1y 1n|H 14.41 Transfer-Encoding
2t 2y 9n| 2t 2y 14n| 2t 1y 5n|H 14.42 Upgrade
12t 1y 1n|10t 2y 2n| 8t 0y 0n|H 14.43 User-Agent
5t 1y 7n| 7t 4y 7n| 4t 1y 3n|H 14.44 Vary
9t 0y 3n| 8t 0y 7n| 7t 0y 1n|H 14.45 Via
4t 3y 5n| 2t 3y 12n| 2t 3y 3n|H 14.46 Warning
11t 1y 2n|14t 3y 1n| 7t 1y 0n|H 14.47 WWW-Authenticate
13t 0y 1n|15t 2y 1n| 8t 0y 0n|A 2 Basic Authentication
2t 0y 12n| 4t 5y 9n| 1t 0y 7n|A 3.2.1 WWW-Authenticate Digest
1t 0y 13n| 2t 1y 15n| 0t 0y 8n|A 3.2.1 qop-options auth
1t 0y 13n| 1t 0y 17n| 0t 0y 8n|A 3.2.1 qop-options auth-int
2t 0y 12n| 4t 5y 9n| 1t 0y 7n|A 3.2.2 Authorization Digest
1t 0y 13n| 2t 1y 15n| 0t 0y 8n|A 3.2.2 request qop auth
1t 0y 13n| 1t 0y 17n| 0t 0y 8n|A 3.2.2 request qop auth-int
2t 0y 12n| 3t 2y 13n| 1t 0y 7n|A 3.2.3 Authentication-Info Digest
1t 0y 13n| 1t 2y 15n| 0t 0y 8n|A 3.2.3 response qop auth
1t 0y 13n| 1t 0y 17n| 0t 0y 8n|A 3.2.3 response qop auth-int
11t 0y 3n| 7t 0y 7n| 6t 0y 2n|A 4.1 Proxy-Authenticate Basic
2t 0y 12n| 1t 1y 12n| 1t 0y 7n|A 4.2 Proxy-Authenticate Digest
0t 1y 13n| 0t 0y 14n| 0t 0y 8n|A 4.2 Proxy qop-options auth
0t 1y 13n| 0t 0y 14n| 0t 0y 8n|A 4.2 Proxy qop-options auth-int
2t 0y 12n| 1t 1y 12n| 1t 0y 7n|A 4.2 Proxy Auth Digest
0t 1y 13n| 0t 0y 14n| 0t 0y 8n|A 4.2 Proxy request qop auth
0t 1y 13n| 0t 0y 14n| 0t 0y 8n|A 4.2 Proxy request qop auth-int
1t 1y 12n| 1t 0y 13n| 1t 0y 7n|A 4.2 Proxy Auth-Info Digest
0t 1y 13n| 0t 0y 14n| 0t 0y 8n|A 4.2 Proxy response qop auth
0t 1y 13n| 0t 0y 14n| 0t 0y 8n|A 4.2 Proxy response qop auth-int
Received on Wednesday, 30 September 1998 07:21:52 UTC