Would it be unwise to use various punctuation characters in an HTTP URL path? I am in the process of defining resource URLs for an API. These resource URLs will have to be accessed, stored, and transmitted by a wide variety of clients and middleware, so it is important that they do not contain characters that are likely to cause issues.
RFC 3986, section 2.2. "Reserved Characters" specifies the following characters as sub-delims: !$&'()*+,;=
Are any of these illegal for arbitrary use within URL paths in the HTTP scheme?
Even if they are legal according to the standards, do any of these have a high chance of causing real-world interoperability problems due to non-compliant software?
Are there any specific sub-delims that you have previously used without issue in a widely-deployed API (this would provide evidence that the ones you used are safe)?
The motivation is that we need to delimit key-value pairs which do not have hierarchical semantics. We are considering doing this: http://doriantaylor.com/policy/http-url-path-parameter-syntax . However, if this is likely to be a problem, we will just do http://example.com/key1/value1/key2/value2