In general,
Code: Select all
<scheme name> : <hierarchical part> [ ? <query> ] [ # <fragment> ]
(Stuff in the []s are optional.)
The scheme is the scheme. Like a protocol. Basically just some short identifier that says what kind of stuff comes next and how it should be treated.
The hierarchical part is a hierarchy. Could be anything, really.
The query allows for some sort of question. Format varies.
The fragment can be used to locate some part in the result, like a page number or bookmark.
In general, for HTTP, the scheme is "http"; the hierarchical part is two slashes, a domain, another slash, and possibly a bunch more stuff (often itself a hierarchy delimited with slashes); the query is a list of key=value pairs separated by ampersands; and the fragment is used for anchor links.
What you gave is invalid for HTTP, but works as a URI because
the scheme is "http", the hierarchical part is "//abc.php", the query is "page=anotherpage", and the fragment is empty.