query_string
(Ниже приводится текст связанного раздела записи в Википедии.)
Структура
Типичный URL, содержащий строку запроса, выглядит следующим образом:
http://server/path/program?query_string
Когда сервер получает запрос на такую страницу, он запускает программу (если она настроена на это), передавая строку запроса без изменений программе. Знак вопроса используется в качестве разделителя и не является частью строки запроса.
Ссылка на веб-странице может иметь URL-адрес, содержащий строку запроса, однако HTML определяет три способа, которыми веб-браузер может сгенерировать строку запроса:
- веб-форма через ... элемент
- серверная карта изображений с помощью атрибута ismap элемента с конструкцией
- индексированный поиск по устаревшему элементу
Веб-формы
Основное использование строк запроса заключается в содержании HTML-формы, также известной как веб-форма. В частности, когда отправляется форма, содержащая поля field1, field2, field3, содержимое полей кодируется в виде строки запроса следующим образом:
field1=value1&field2=value2&field3=value3...
- Строка запроса состоит из серии пар поле-значение.
- В каждой паре имя и значение поля разделяются знаком равенства. Знак равенства может быть опущен, если значение является пустой строкой.
- Серия пар разделяется амперсандом '&' (или точкой с запятой ';' для URL-адресов, встроенных в HTML и не генерируемых ...; см. Ниже).
Хотя нет определенного стандарта, большинство веб-платформ позволяют связывать несколько значений с одним полем:
field1=value1&field1=value2&field1=value3...
Для каждого поля формы строка запроса содержит пару поле = значение. Веб-формы могут включать поля, которые не видны пользователю; эти поля включаются в строку запроса при отправке формы
Это соглашение является рекомендацией W3C. W3C рекомендует, чтобы все веб-серверы поддерживали разделители точек с запятой в дополнение к разделителям амперсандов [6], чтобы разрешить строки запросов application / x-www-form-urlencoded в URL-адресах в документах HTML без необходимости экранировать сущности амперсандами.
Технически, содержимое формы кодируется только как строка запроса, если метод отправки формы - GET. Та же самая кодировка используется по умолчанию, когда используется метод отправки POST, но результат не отправляется в виде строки запроса, то есть не добавляется в URL-адрес действия формы. Скорее, строка отправляется как тело HTTP-запроса.