> On Jan 18, 2016, at 11:07 PM, Phillip Hallam-Baker <phill@xxxxxxxxxxxxxxx> wrote: > > RFC5785 specifies a registry for prefixes in the /.well-known/ space > of a HTTP server. > > So for example, I have registered mmm as the SRV prefix for the > Mathematical Mesh portal protocol. This is used to resolve > transactions that are bound to an account identifier in RFC822 style > format. e.g. alice@xxxxxxxxxxx. > > A service provider might advertise service on host1 and host2 with DNS > entries as follows: > > _mmm._tcp.example.com SRV 0 20 80 host1.example.com > _mmm._tcp.example.com SRV 0 80 80 host2.example.com > mmm.example.com CNAME host1.example.com > > It is natural for the client resolving alice@xxxxxxxxxxx to use the > following Web Service Endpoints: > > http://host1.example.com/.well-known/mmm/ > http://host2.example.com/.well-known/mmm/ > > In effect we are providing the SRV prefix to the HTTP server using the > URI request line in the same way that we use the Host: header to tell > the server which service is being accessed (example.com in either case > as following the prcedent set for CNAME lookup. we give the original > DNS query name, not the internal DNS translations). > Now people may or may not like this particular proposal. Heck, I might > not even like it after I have used it for a while. But it is certainly > based on the Internet architecture to the extent any of it has been > written down. It is consistent with current practice and with the > requirements of the RFCs I have read. Nobody who has objected to this > approach has ever given me a technical argument as to why it is wrong. > > My problem is that while the SRV registry is first come, the > .well-known registry is 'specification required'. This creates two > problems: > > 1) It is quite possible that following current registration practices, > someone else might apply for mmm and the registration would be > granted. And then my only recourse might be a lawsuit. > > 2) I may not be able to provide the specification, either because the > protocol is experimental or proprietary. One approach would be to register "/.well-known/_srv/" using a specification, then have that spec allow anyone with an SRV registration to use (for example) "/.well-known/_srv/_tcp/_mmm" without further registration. Note: this is just a strawman syntax; there's a nice bikeshed available about how many underscores to use. -- Joe Hildebrand