Введение
Часть URL, которая присваивает значения указанным параметрам. Строка запроса — это часть универсального указателя ресурсов (URL), которая присваивает значения указанным параметрам. Строка запроса обычно содержит поля, добавляемые к базовому URL веб-браузером или другим клиентским приложением, например, в составе HTML-документа, для изменения внешнего вида страницы или перехода к определенным позициям в мультимедийном контенте. Веб-сервер может обрабатывать запрос протокола передачи гипертекста (HTTP) либо путем чтения файла из файловой системы на основе пути URL, либо путем обработки запроса с использованием логики, специфичной для типа ресурса. В случаях, когда вызывается специальная логика, строка запроса будет доступна этой логике для использования в процессе обработки вместе с частью URL, определяющей путь.
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. A web server can handle a Hypertext Transfer Protocol (HTTP) request either by reading a file from its file system based on the URL path or by handling the request using logic that is specific to the type of resource. In cases where special logic is invoked, the query string will be available to that logic for use in its processing, along with the path component of the URL.
Кодировка URL
Некоторые символы не могут быть частью URL (например, пробел), а некоторые другие символы имеют специальное значение в URL: например, символ # может использоваться для более точного указания подраздела (или фрагмента) документа. В HTML-формах символ = используется для разделения имени и значения. URI использует кодирование URL для решения этой проблемы, в то время как HTML-формы выполняют некоторые дополнительные замены вместо применения процентного кодирования для всех таких символов. Пробел кодируется как '+' или "%20".
Если URL слишком длинный, веб-сервер возвращает код состояния HTTP 414 Request URI Too Long. Распространенным решением этих проблем является использование POST вместо GET и хранение параметров в теле запроса. Ограничения на длину тела запроса обычно значительно выше, чем ограничения на длину URL. Например, по умолчанию максимальный размер POST-запроса составляет 2 МБ в IIS 4.0 и 128 КБ в IIS 5.0. В Apache2 лимит можно настроить с помощью директивы LimitRequestBody, которая определяет допустимый размер тела запроса в байтах – от 0 (неограниченно) до 2147483647 (2 ГБ).