Though the {{tag|isindex|open}} element is deprecated and most browsers no longer support or render it, there are still some vestiges of indexed search in existence. For example, this is the source of the special handling of [[plus sign]], '<code>+</code>' within browser URL percent encoding (which today, with the deprecation of indexed search, is all but redundant with <code>%20</code>). Also some web servers supporting [[Common Gateway Interface|CGI]] (e.g., [[Apache HTTP Server|Apache]]) will process the query string into command line arguments if it does not contain an [[equals sign]], '<code>=</code>' (as per section 4.4 of CGI 1.1). Some CGI scripts still depend on and use this historic behavior for URLs embedded in HTML.
== URL encoding ==
{{Main|Percent-encoding}}
Some [[Character (computing)|characters]] cannot be part of a URL (for example, the space) and some other characters have a special meaning in a URL: for example, the character <code>#</code> can be used to further specify a subsection (or [[Fragment identifier|fragment]]) of a document. In HTML forms, the character <code>=</code> is used to separate a name from a value. The URI generic syntax uses [[Percent-encoding#Percent-encoding reserved characters|URL encoding]] to deal with this problem, while HTML forms make some additional substitutions rather than applying percent encoding for all such characters. SPACE is encoded as '<code>+</code>' or "<code>%20</code>".<ref name="w3schools" />
[[HTML 5]] specifies the following transformation for submitting HTML forms with the "GET" method to a web server. The following is a brief summary of the algorithm:
* Characters that cannot be converted to the correct charset are replaced with HTML [[numeric character reference]]s<ref name="html5 urlencoded" />
* SPACE is encoded as '<code>+</code>' or '<code>%20</code>'
* Letters (<code>A</code>–<code>Z</code> and <code>a</code>–<code>z</code>), numbers (<code>0</code>–<code>9</code>) and the characters '<code>~</code>','<code>-</code>','<code>.</code>' and '<code>_</code>' are left as-is
* <code>+</code> is encoded by %2B
* All other characters are encoded as a <code>%HH</code> [[hexadecimal]] representation with any non-ASCII characters first encoded as UTF-8 (or other specified encoding)
The octet corresponding to the tilde ("<code>~</code>") is permitted in query strings by RFC3986 but required to be percent-encoded in HTML forms to "<code>%7E</code>".
The encoding of SPACE as '<code>+</code>' and the selection of "as-is" characters distinguishes this encoding from RFC 3986.
== Example ==
|