Sean Conner writes: > It was thus said that the Great plugd once stated: >> Hi all, >> >> This question occurred to me when debugging some 5x error responses from >> servers: how strictly are servers expected to be when responding to >> requests? In particular, if a client is given a URL such as >> >> gemini://example.com >> >> (i.e. with an empty file name) is it expected to translate it into >> >> gemini://example.com/ ? > > Yes. In RFC-3986, if you follow the BNF, you'll find this bit: [snip] Great, thank you for the explanation. (I should have RTFM, sorry!) > > we have the 'scheme' portion, then the two '//' which means we're following > the first rule in 'hier-part'. 'authority' is the host part (which I didn't > include) followed by a 'path-abempty', of which there can be 0 or more of, > so that's a perfectly cromulent URL. It's the responsibility of the > *server* to handle the situation, not the client. Converting to this canonical form actually makes several things easier on the client side too. > A related problem is a relative URL like: > > /test/torture/../../test/./torture/../../../../test/./././torture/./0022 > > That collapses down to: > > /test/torture/0022 > > but in this case, I think it would be the responsibiliy of the *client* to > collapse the first into the second (and then add the scheme, host, etc.). I > know my own server does the collapsing, but I think I may change that. Fair enough. The URL library elpher uses doesn't automatically do this, but it seems simple enough to do (famous last words).. Thanks for the help, plugd
---
Previous in thread (2 of 15): 🗣️ Sean Conner (sean (a) conman.org)
Next in thread (4 of 15): 🗣️ Sean Conner (sean (a) conman.org)