URL Query String encoding
A query string is a part of a uniform resource locator (URL) that assigns values to specified parameters. A query string commonly includes fields added to a base URL by a Web browser or other client application, for example as part of an HTML document, choosing the appearance of a page, or jumping to positions in multimedia content.
One of the original uses was to contain the content of an HTML form, also known as web form. In particular, when a form containing the fields field1
, field2
, field3
is submitted, the content of the fields is encoded as a query string as follows:
field1=value1&field2=value2&field3=value3...
The query string is composed of a series of field-value pairs.
Within each pair, the field name and value are separated by an equals sign, =
.
The series of pairs is separated by the ampersand, &
(semicolons ;
are not recommended by the W3C anymore).
While there is no definitive standard, most web frameworks allow multiple values to be associated with a single field (e.g. field1=value1&field1=value2&field2=value3
).
For each field of the form, the query string contains a pair field=value
. Web forms may include fields that are not visible to the user; these fields are included in the query string when the form is submitted.
This convention is a W3C recommendation. In the recommendations of 1999, W3C recommended that all web servers support semicolon separators in addition to ampersand separators to allow application/x-www-form-urlencoded
query strings in URLs within HTML documents without having to entity escape ampersands. Since 2014, W3C recommends to use only ampersand as query separator.
The form content is only encoded in the URL's query string when the form submission method is GET. The same encoding is used by default when the submission method is POST, but the result is submitted as the HTTP request body rather than being included in a modified URL.1
Source:
[1] en.wikipedia.org/wiki/Query_string