- 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