My understanding of the general form of a URL is that it looks as follows:
<scheme>://<host><path>?<query>#<fragment>
Can there be any forward slashes in either the query or the fragment? More generally, are there any characters that are specifically reserved for any single part of a URL?
of course you can use
/
in bothfragment
andquery
An example:
jsfiddle demo
Basically you can use anything that can be encoded in an URL. moreinfo
STD 66 defines the fragment as:
So aside from characters from the
pchar
set (unreserved / pct-encoded / sub-delims / ":" / "@"
), the/
and the?
can be used in the fragment directly (i.e., percent-encoding is not needed).The
/
is even mentioned explicitly in the text:Fragment can contain any character at all.
Query can contain any character except for
#
, as it is treated as marker (but you can use URL-encoding to still have it there)So, in general, there are no any reserved characters as long as there is no ambiguity.
See RFC 3987 for the most up-to-date info. Your "general form" is not exactly right