- From: Hayato Ito <notifications@github.com>
- Date: Thu, 21 Sep 2023 19:52:33 -0700
- To: whatwg/url <url@noreply.github.com>
- Cc: Subscribed <subscribed@noreply.github.com>
Received on Friday, 22 September 2023 02:52:39 UTC
Thanks! I didn't notice that idempotence is clearly stated as a goal in the URL Standard. I understand now.
> 1. Always replace a trailing space in an opaque path with %20.
Proposal 1 means:
```
const url = new URL("data:blah #a");
assertEquals(url.pathname, "blah %20");
url.hash = "";
assertEquals(url.pathname, "blah %20");
```
, right? This sounds best to me (out of 1/2/3/1b/2b/3b).
However, as far as I understand, the following URLs (as a result of serialization) are not [equivalent](https://url.spec.whatwg.org/#url-equivalence) to each other:
- "data:blah "
- "data:blah%20%20"
- "data:blah %20"
So every option proposed here seems a technically breaking change.
> 3. We always trim trailing spaces from opaque paths. Technically a breaking change, but overall it's better at ensuring everything stays consistent.
This doesn't seem a popular option here, however, this looks the simplest and easy-to-understand rule to me.
I assume we introduce a breaking change anyway.
--
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/url/issues/784#issuecomment-1730732590
You are receiving this because you are subscribed to this thread.
Message ID: <whatwg/url/issues/784/1730732590@github.com>
Received on Friday, 22 September 2023 02:52:39 UTC