-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Why MUST /foo
and /foo/
be the same ?
#242
Comments
/foo
and /foo/
be the same ?/foo
and /foo/
be the same ?
My guess is that the redirect from
That allows the other use cases to be build where it makes sense, but helps guide server authors to good defaults. |
I don't know what the Solid project's view is towards the use of arbitrary DIDs (decentralized identifiers) and DID method spaces for identifying and locating resources, but, in that world, 2 different identifier (strings) that only differ in a trailing slash would still be considered to be identifiers for 2 distinct Subjects (aka resources). Something to consider... |
Maybe sticking with one thread on this apparently slippery topic makes some sense? At least, linking back from each newer thread to its precursor will help new readers catch up on this round of this undying thread (not quite, but coming close to, httpRange-14). First thing, please note that this is not about the generic question of whether 2 URIs that differ only in trailing slash identify different resources. This is about the specific question of how Please note that the question of the Decisions were made about how |
@TallTed I clarified the link to the previous issue above. I opened a new one as I previously confused a couple of issues and it did lead to a minor PR. So I thought i would try to summarize the argument cleanly. Note: I think the defaults are good as defaults, and that is why I suggested the text above. They don't seem to be needed as requirements, though. But I may very well be missing something. |
This used to be true and is not anymore.
That indeed caused problems mainly seen when listing the parent folder content using mashlib or any editor not displaying the / as part of the name. |
Thanks for the feedback, @bourgeoa. It would be nice to understand the problem more precisely. Perhaps there is a link to where the issue was discussed? I am not quite clear what is meant by Editor. Is that something like TextEdit or Vim? Or is it an editor using mashlib? If it is a problem with desktop clients then I can see that they would have problems allready with content negotiation. But perhaps the problem comes when one wants to write a FS view of Solid, in order to retrofit existing applications? Perhaps then one could not distinguish a file system path |
@bblfish - Challenges abound. |
yes, I am implementing it currently as a mapping to the file system, so am grappling with these issues. I'll report back on my findings... |
I am finding that my implementation is following the redirects as specified currently, as it is easier to do that way. |
Will close the issue with the understanding that the requirements in the specification are currently deemed to be useful and implemented/able - or at least do not pose a problem as it stands. If there are differences of opinion in the design or wording, we can revisit. |
In the specs § URI slash semantics I read
I think restrictions using
MUST
must have very good justifications, or else one is closing doors unnecessarily.This restriction seems unnecessary and feels confusing. As shown in the predecessor to this issue. Node Solid Server which was widely deployed behaves differently. Did that cause problems? What problems?
There is of course no problem if servers do behave the way described. But why could there not be good use cases for them behaving differently?
Here are some use cases I can think of
/Ulysses
as an external view to/Ulysses/
Let us imagine that
/Ulysses/
is protected by the publisher, but the publisher would like people to know what the contents - the Cover - of/Ulysses/
is. Then/Ulysses
could return the cover information, price, age restrictions or whatever in human readable form. I.e./Ulysses
could content negotiate to/Ulysses.html
Tar files
Perhaps we want a way to upload tar files with a POST in one go. So a request to
/cats
Connegs to/cats.tar
but a request on/cats/
could show the (read-only) contents on the tar file.Blog with picture content
Someone writes a blog at
/2021/04/01
quickly telling a story of what happened to them that day. Later that person wants to add pictures. Why not put those in/2021/04/01/
while keeping/2021/04/01
and/2021/04/01.html
for the blog post ?These are three use cases that occur to me. Perhaps there is a good reason to exclude them?
Addendum
Furthermore the next sentence in § URI slash semantics goes on to say
So the Resources MUST be the same but they MAY redirect to one another. What is the sense of "the same" that we are speaking of here?
The text was updated successfully, but these errors were encountered: