What characters must be escaped in an HTTP query string?

This question concerns the characters in the query string portion of the URL, which appear after the ? mark character. Per Wikipedia, certain characters are left as is and others are encoded (usually