Skip to content
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

URL-interop and path parameters #24

Open
joakime opened this issue Jun 15, 2022 · 0 comments
Open

URL-interop and path parameters #24

joakime opened this issue Jun 15, 2022 · 0 comments

Comments

@joakime
Copy link

joakime commented Jun 15, 2022

Here's a bit of trivial for you.

From https://tools.ietf.org/html/rfc3986#section-3.3

A path like /path;a=b/with;c=foo/path;d=parameters

Path parameters support has existed in the IETF specs like this ...

The most recent RFC3986 is at odds with RFC7230 when it comes to path normalization when path parameters are in the mix.
The two sides don't agree, and I bet the w3c whatwg specs are also either at odds with, or have punted on, this feature of URI paths.

See https://datatracker.ietf.org/doc/html/rfc3986#section-6

Since path parameters start with a ; and don't have to contain a = or a key or a value.
The following are all allowed.

/a/;/
/a/.;/
/a/..;/
/a/..;b/
/a/..;b=/
/a/..;b=c/

What are you supposed to do when you have to normalize these?

Some examples:

http://machine.com/path;a=foo/..;z=y/what;c=bar
http://machine.com/path/..;?a=b
http://machine.com/path;a=b/../path;a=z
http://machine.com/;?a=b
http://machine.com/a/b/..;/c;/d

Some servers will treat ; as a path parameter and strip it out (to hold separately) and then normalize the non-path parameter version.
Some servers will treat ; as just a character in a path, so that /a/..;b/c is actually a dir called a with a directory ..;b inside of it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant