- From: Koen Holtman <koen@win.tue.nl>
- Date: Mon, 4 Mar 1996 00:42:37 +0100 (MET)
- To: "Roy T. Fielding" <fielding@avron.ICS.UCI.EDU>
- Cc: koen@win.tue.nl, http-wg%cuckoo.hpl.hp.com@hplb.hpl.hp.com
Roy T. Fielding:
>[...]
>In summary, the proposal now looks like:
>
>      200 == OK
>      206 == Partial Content
>      304 == Use Local Copy [includes the Content-ID of the copy chosen]
>      412 == Precondition False
>
>   GET unless we would be given one of the variants already cached:
>
>     Request:   GET + Unless-ID
>     Response:  304 if Content-ID  is in Unless-ID
>                200 if Content-ID not in Unless-ID
>
>   Cache validation:
>
>     Request:   GET + IMS + Unless-ID
>     Response:  304 if Content-ID  is in Unless-ID
>                200 if Content-ID not in Unless-ID
Make that:
     Response:  304 if Content-ID  is in Unless-ID and not modified since
                200 if Content-ID not in Unless-ID or modified since
>   Partial GET (w/OK response if changed):
>
>     Request:   GET + Range + If-ID
>     Response:  206 if Content-ID  is in If-ID
>                200 if Content-ID not in If-ID
>
>   Partial GET (w/bad response if changed):
>
>     Request:   GET + Range + If-ID + [some indicator in Range]
>     Response:  206 if Content-ID  is in If-ID
>                412 if Content-ID not in If-ID
>
>   Precondition for all other methods:
>
>     Request:   method + If-ID
>     Response:  2xx if Content-ID  is in If-ID
>                412 if Content-ID not in If-ID
>
>     Request:   method + Unless-ID
>     Response:  412 if Content-ID  is in Unless-ID
>                2xx if Content-ID not in Unless-ID
>
>
>I think that is a reasonable and simple design.
I agree. 
Now we can argue about the syntax of the Content-ID.  You write
               Content-ID  =  "Content-ID" ":" cid
               cid  =  <a content-id as defined in RFC 1521>
I believe this means 
               cid = local-part "@" domain
Do we really want the domain?  I think it would not hurt to make the
whole thing an opaque string.  I don't think that a plaintext domain
string has enough value to justify the bandwidth.  Because of spoofing
issues, you can never use a cid without knowing its resource URI
anyway.
A quick calculation: to uniquely identify a version of a normal
resource on a UNIX based server, you would need:
  - server ip number:     32 bits
  - server port number:   16 bits (?)
  - file inode:           32 bits (?)
  - file ctime:           32 bits
                         --------- + 
                         112 bits
in base 64, this would be 19 characters.  Small enough.
> ...Roy T. Fielding
Koen.
Received on Sunday, 3 March 1996 15:45:35 UTC