I have seen a LOT of pages which give the same lists of unreserved and reserved characters for URIs, so I have a good idea what characters are allowed and disallowed and in what contexts generally speaking.
However, there is almost ZERO documentation about what the different characters actually mean in different segments of the URL, especially the sub-delim set of characters: "!" / "$" / "&" / "'" / "(" / ")" / "*" / "+" / "," / ";" / "="
The only information I have been able to find from ANY source (several RFCs and numerous documentation sites, including several other Stack Overflow questions) is this:
- ampersands and semi-colons are used to delimit key-value pairs from one another in the query string.
- equals signs are used to separate the key from the value in a key-value pair.
- plus symbols are substituted for spaces in the the value of a key-value pair.
But that leaves "!", "$", "'", "(", ")", "*", and "," unaccounted for. So what, specifically, do they do in the context of HTTP scheme URIs?