Se prendiamo:
http://example.com/foo
è corretto dire che:
ftp://example.com/foo
.. punta alla risorsa stessa , usando solo un meccanismo diverso per risolverlo (e, naturalmente, forse una rappresentazione diversa, ma forse no)?
Questo è venuto alla luce in una discussione che abbiamo avuto attorno ad alcuni strumenti interni con Git. Dobbiamo elaborare alcuni repository Git e vengono utilizzati come "git @ {authority} / {path}", tuttavia la libreria che stiamo usando per interfacciarli non supporta il protocollo git
. Ho suggerito di rendere il servizio affidabile in quanto tenta di utilizzare HTTP o SSH, in sostanza, scoprendo quali protocolli / schemi sono supportati per la risoluzione del repository su {path} sotto ogni {autorità}.
Ciò ha incontrato alcune critiche: "Non sappiamo se si tratta dello stesso repository".
La mia risposta è stata: "Sarebbe meglio essere!"
Guardando RFC 3986, vedo questo estratto:
URI "resolution" is the process of determining an access mechanism and the appropriate parameters necessary to dereference a URI; this resolution may require several iterations. To use that access mechanism to perform an action on the URI's resource is to "dereference" the URI.
Il che mi fa pensare che il processo di risoluzione sia autorizzato a provare diversi protocolli, perché:
Although many URI schemes are named after protocols, this does not imply that use of these URIs will result in access to the resource via the named protocol.
L'unica preoccupazione che ho, credo, è che vedo solo il riferimento alla nozione di cambiare i protocolli quando si tratta di attraversare le relazioni:
it is possible for a single set of hypertext documents to be simultaneously accessible and traversable via each of the "file", "http", and "ftp" schemes if the documents refer to each other with relative references.
Sono propenso a pensare di sbagliarmi nelle mie convinzioni iniziali, perché la sezione Normalization and Comparison
di detta RFC non menziona alcun modo di trattare due URI come equivalenti se usano schemi diversi. Sembra che schemi denominati / basati su protocolli IP debbano avere questa nozione, almeno?