Implementation report for HTTP/1.1 to Draft Standard

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