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/usershttp://example.com/usershttp://example.com/users.htmlfile://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.
usersbecomesusers.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.txtbecomes🐲.txtor vice-versa.