- 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