Percent-encoded …
You can use the @ character in HTTP URI paths if you percent-encode it as %40.
Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.
… but also directly
Instead of percent-encoding it, you may use @ directly in the HTTP URI path.
See the syntax for the path of an URI. Various unrelated clauses aside, the path may consist of characters in the segment, segment-nz, or segment-nz-nc set. segment and segment-nz consist of characters from the pchar set, which is defined as:
pchar = unreserved / pct-encoded / sub-delims / ":"https://stackoverflow.com/"@"
As you can see, the @ is listed explicitly.
The segment-nz-nc set also lists the @ character explicitly:
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
So, a HTTP URI like this is totally valid:
http://example.com/@dave
Example
Here is an example Wikipedia page:
- link
- copy-and-paste:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
As you can see, the ", (, and ) characters are percent-encoded, but the @ and the _ is used directly.