What characters can go into a valid HTTP URL?

Section 5 of RFC 1738 – Uniform Resource Locators specifies the format of an HTTP URL:

The “path” and the “query string” parts can contain alphabets, numbers the following characters: $-_.+!*’(,;:@&=/

They can also contain escaped forms (“%” (percent) followed by 2 hex values, i.e. %[A-Fa-f0-9]{2}, for each byte) of other characters.