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. Indexed search Before forms were added to HTML, browsers rendered the element as a single-line text-input control. The text entered into this control was sent to the server as a query string addition to a GET request for the base URL or another URL specified by the attribute. This was intended to allow web servers to use the provided text as query criteria so they could return a list of matching pages. When the text input into the indexed search control is submitted, it is encoded as a query string as follows: The query string is composed of a series of arguments by parsing the text into words at the spaces. The series is separated by the plus sign, '+'. Though the 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, '+' within browser URL percent encoding (which today, with the deprecation of indexed search, is all but redundant with %20). Also some web servers supporting CGI (e.g., Apache) will process the query string into command line arguments if it does not contain an equals sign, '=' (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 Some 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 # can be