Changes between Version 23 and Version 24 of NewCapDesign


Ignore:
Timestamp:
2011-05-06T22:44:49Z (14 years ago)
Author:
Zarutian
Comment:

Hidden chat excerpt added, where should raw ?knowledge? like this be kept?

Legend:

Unmodified
Added
Removed
Modified
  • NewCapDesign

    v23 v24  
    2828   vs non-hierarchical segments. What's magical about a leading double-slash?
    2929   Do we need one?
     30{{{#!comment
     31 Edited chat excerpt from #tahoe-lafs on irc.freenode.org regarding above point:
     32
     33[7:52pm] <Zarutian> zooko: havent heard of new-caps, what are those or will those be?
     34[7:54pm] <zooko> Zarutian: http://tahoe-lafs.org/trac/tahoe-lafs/wiki/NewCapDesign
     35[7:58pm] <Zarutian> zooko: I can answer the question in second point in the section "make them real URIs": the leading // arent required in many uri schemes, it was used to indicate if the uri is hierchical or not.
     36[7:58pm] <davidsarah> right, but we want the URIs to be hierarchical
     37[7:58pm] <zooko> davidsarah: really?
     38[7:58pm] <davidsarah> that's necessary in order for relative URI resolution to work correctly
     39[7:59pm] <zooko> I thought // meant that the thing that comes after // is the "authority" for the rest of it which comes after the next /.
     40[7:59pm] <davidsarah> e.g. you have a web page with a lafs:// uri as its base, and you want relative links in that page to work
     41[7:59pm] <zooko> Would you say that there is an "authority"? Like if that part is a gateway address+port num, or a grid id?
     42[7:59pm] <zooko> What about if the cap is the "authority" and then the path from that cap is the "rest of it". :-)
     43[8:00pm] <zooko> That matches my model of the world fairly nicely. :-)
     44[8:00pm] <davidsarah> whether there is an authority is less important than the resolution algorithm
     45[8:00pm] <Zarutian> davidsarah: really? I thought tahoe URI were like paths through linked namespaces in Gnosis/KeyKos/Eros/Capros
     46[8:00pm] <davidsarah> URI resolution is purely syntactic
     47[8:00pm] » davidsarah finds the relevant spec
     48[8:01pm] <davidsarah> http://tools.ietf.org/html/rfc3986#section-5
     49[8:01pm] <Riastradh> zooko, hmm, perhaps you should talk with Jonathan Rees about that.  He knows a lot about URIs, their intent, and their interpretation.
     50[8:04pm] <davidsarah> "As relative references can only be used within the context of a hierarchical URI, designers of new URI schemes should use a syntax consistent with the generic syntax's hierarchical components unless there are compelling reasons to forbid relative referencing within that scheme."
     51[8:04pm] <davidsarah> in http://tools.ietf.org/html/rfc3986#section-1.2.3
     52[8:04pm] <Riastradh> You don't need an authority in order for a URI to have a hierarchical path component.
     53[8:04pm] <davidsarah> you do need // though, iirc
     54[8:05pm] <Riastradh> No, I don't think so.
     55[8:05pm] <davidsarah> "If a URI does not contain an authority component, then the path cannot begin with two slash characters ("//")."
     56[8:05pm] <davidsarah> in section 3.3
     57[8:06pm] <Riastradh> URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ];  hier-part = "//" authority path-abempty / path-absolute / path-rootless / path-empty
     58[8:06pm] <Riastradh> Oh, excuse me.  When you said `you do need //', did you mean `you do need // for an authority', or `you do need // for a hierarchical path component'?
     59[8:06pm] » zooko reads http://labs.apache.org/webarch/uri/rfc/rfc3986.html#authority
     60[8:06pm] <Zarutian> what is an authority component in this context? user:pass@ before the hostname?
     61[8:06pm] <Riastradh> Zarutian, the user info, hostname, and port number.
     62[8:07pm] <Riastradh> Everything between the // and the first / of the path, if any.
     63[8:07pm] <davidsarah> right, usually (although it's strictly speaking scheme-specific)
     64[8:08pm] <zooko> So, this makes it sound like you can have paths without an authority: http://labs.apache.org/webarch/uri/rfc/rfc3986.html#path
     65[8:08pm] <zooko> Although, FWIW, I still kind of favor letting the cap itself occupy the "authority" slot...
     66[8:08pm] <Zarutian> zooko: yurl style?
     67[8:08pm] <Riastradh> zooko, see Section 3 `Syntax Components', from which I just quoted a grammar excerpt.
     68[8:08pm] » davidsarah was sure that hierarchical uris required // (and therefore an authority), but is having difficulty finding where it says that
     69[8:08pm] <zooko> Zarutian: yeah, now that you mention it, a bit like!
     70[8:09pm] <zooko> Interesting. :-)
     71[8:09pm] <zooko> Riastradh: yes, I was just looking at Section 3 -- what about it?
     72[8:09pm] <Riastradh> zooko, the hier-part production rule includes options with paths and no authority.
     73[8:10pm] <davidsarah> hmm, maybe this changed since RFC 2396
     74[8:10pm] » davidsarah  checks that
     75[8:10pm] <davidsarah> yes, it did
     76[8:10pm] <davidsarah> http://tools.ietf.org/html/rfc2396#appendix-A
     77[8:11pm] <davidsarah> an RFC 2396 hierarchical URI requires an authority; an RFC 3986 one does not
     78[8:12pm] <Riastradh> That's not what I see in RFC 2396, davidsarah.  absoluteURI = scheme ":" ( hier_part | opaque_part ); hier_part = ( net_path | abs_path ) [ "?" query ]; abs_path = "/" path_segments.
     79[8:13pm] <davidsarah> oh, right, I misread it
     80[8:13pm] <davidsarah> you're correct
     81[8:16pm] <davidsarah> OTOH, if the URI includes a grid id, that would effectively be an authority
     82[8:17pm] <zooko> Funny thing, "authority". :-) I would sort of make gateway and cap the authority.
     83[8:17pm] <Riastradh> That sounds reasonable to me, provided that the `grid id' is in a sufficiently global namespace such as the DNS.
     84[8:17pm] <zooko> But not grid id.
     85[8:17pm] <zooko> grid id determines if your attempt to access it will succeed, but does not determine what contents you'll find on a read or whether you can write.
     86[8:17pm] <zooko> That's all determined by the cap.
     87[8:18pm] <davidsarah> this should be discussed on an archived medium!
     88[8:19pm] <zooko> Yes...
     89[8:21pm] <zooko> Namely #683, I think.
     90[8:21pm] <subm> #683 (handle arbitrary URIs in directories)
     91[8:21pm] <subm> http://tahoe-lafs.org/trac/tahoe-lafs/ticket/683
     92[8:21pm] <zooko> Zarutian: would you be willing to update #683 to reflect the conversation from this channel?
     93[8:33pm] <davidsarah> should be #432 I think
     94[8:33pm] <subm> #432 (writing down filecaps: revise URI scheme)
     95[8:33pm] <subm> http://tahoe-lafs.org/trac/tahoe-lafs/ticket/432
     96[8:33pm] <davidsarah> see http://tahoe-lafs.org/trac/tahoe-lafs/query?status=!closed&keywords=~newurls for all tickets related to new URLs
     97
     98}}}
    3099 * according to #683, a URI '''identifies''' a resource, but does not
    31100   necessarily provide enough information to actually access it (i.e. if you