DRP and content identifiers.

Hi,

In previous mail we have discussed the use of globally unique 
content identifiers in the DRP proposal. As a result of these
discussion I would like to make some minor changes to the DRP 
proposal. The changes include some suggestions for modifications 
to the HTTP/1.1 specification.

* Globally Unique Content Identifiers

As suggested by Larry Masinter we should start using content identifiers 
as defined in RFC 2111 (http://www.ics.uci.edu/pub/ietf/uri/rfc2111.txt).

As a result the notation for an MD5 and SHA checksum content identifiers 
will be as follows:

  FNG4c6MJLdDEY1rcoGb4pQ==@md5.w3.org
  thvDyvhfIqlvFe+A9MYgxAfm1q5=@sha.w3.org

The first part of a checksum based content identifier  will be 
the base-64 notation of the checksum, the address part identifies
the type of checksum. Unlike the base64 specification I suggest 
that the trailing '=' signs are optional.

For MD5 we shall use the "md5.w3.org" address, for SHA checksums we 
shall use "sha.w3.org". This way anyone can create new checksum types 
by appending the appropriate domain name to the content identifier.

* Globally Unique Entity Tags

We would like to suggest the following change to the definition of 
entity-tag in section 3.11 of the HTTP/1.1 specification:

   entity-tag         = [ weak | global ] opaque-tag
   weak               = "W/"
   global             = "G/"
   opaque-tag         = quoted-string | quoted-content-id
   quoted-content-id  = <"> content-id <">

This will allow for the use of globally unique entity tags. To avoid 
conflicts a globally unique entity-tag should consist of a quoted
content identifier as described above. 

The presents of a global entity tag identifies the content of the
entity. A proxy can assume that two entities with identical global
entity tags refer to the same content, regardless of their origin.

* Differential Range Specifier

To do differential update requests as described in the DRP proposal
we can use the Range header. In this case the differential reply is
viewed as a "range" of the new document given an older version. This
requires a small change to the definition of ranges-specifier in 
section 14.36.1 of the HTTP/1.1 specification:

  ranges-specifier       = byte-ranges-specifier | diff-range-specifier
  diff-ranges-specifier  = "diff" "=" quoted-content-id

To get a differential update a client must specify the content identifier
of the current version of the resource. The server can reply with a 206
reply (partial content) or a 200 reply (OK).

Please send me your comments. I will update the DRP specification
accordingly and circulate the updated document.

Have fun,

	Arthur van Hoff

Received on Monday, 6 October 1997 15:53:57 UTC