URI Spaces
Through the course of an HTTP Request, the document being acted on, as it exists on disk, over the network, or in a user's Web browser, may have one of several different URI spaces:
- What the Web browser requests
- What the HTTP server sees
- Sometimes, which representation the HTTP server negotiates
- And if relevant, the resource on the filesystem, or the address the author uses
These URIs might look something like this:
http://example.com:8080/users
http://example.com/users
http://example.com/users.html
file://example.com/var/www/users.html
URI references may be used to refer to resources, regardless of the current URI base.
However, there are several places where the mapping may diverge:
- Document aliases, including directory listings. e.g.
/
becomes/index
. - Content-type negotiation or other negotiation, mapping a name onto a file. e.g.
users
becomesusers.html
. - Filesystem directory mapping. e.g.
http://example.com/
becomesfile://example.com/var/www/
, which prohibits using relative references beginning with/
. - Filesystem character set encoding, e.g.
%F0%9F%90%B2.txt
becomes🐲.txt
or vice-versa.