Подтвердить что ты не робот

В чем разница между параметрами URL и строками запроса?

Я не вижу большой разницы между параметрами и строками запросов в URL. Так в чем же разница и когда нужно использовать над этим?

4b9b3361

Ответ 1

компонент запроса обозначается первым ? в URI. "Строка запроса" может быть синонимом (этот термин не используется в стандарте URI).

Некоторые примеры для URI HTTP с компонентами запросов:

http://example.com/foo?bar
http://example.com/foo/foo/foo?bar/bar/bar
http://example.com/?bar
http://example.com/[email protected]_=???/1:
http://example.com/?bar1=a&bar2=b

(список допустимых символов в компоненте запроса)

"Формат" компонента запроса зависит от авторов URI. Общее соглашение (но не более чем соглашение, в отношении стандарта URI ¹) заключается в использовании компонента запроса для пар ключ-значение, иначе. , как в последнем примере выше.


¹ Стандарт URI говорит: "[...] компоненты запроса часто используются для переноса идентифицирующей информации в форме" key = value "пары [...]"

Ответ 2

Параметрами являются пары ключ-значение, которые могут отображаться внутри пути URL-адреса, и начинаются с символа с запятой (;).

Строка запроса появляется после пути (если есть) и начинается с символа вопроса (?).

Оба параметра и строка запроса содержат пары ключ-значение.

В запросе GET параметры отображаются в самом URL-адресе:

<scheme>://<username>:<password>@<host>:<port>/<path>;<parameters>?<query>#<fragment>

В запросе POST параметры могут отображаться в самом URL-адресе, а также в потоке данных (как известно, содержимое).

Строка запроса всегда является частью URL.

Параметры могут быть захоронены в form-data потоке данных при использовании метода POST, чтобы они не отображались в URL-адресе. Да, запрос POST может определять параметры как данные формы и URL-адреса, и это не противоречит, поскольку параметры могут иметь несколько значений.

Я пока не нашел объяснений по этому поведению. Думаю, иногда бывает полезно "отобразить" параметры из запроса POST или даже позволить обработать код GET, чтобы передать некоторые части с обработкой кода POST. Конечно, это может работать только с поддерживающими параметры кода сервера в URL-адресе.

Пока вы не получите более полную информацию, я предлагаю вам использовать параметры только в form-data потоке данных POST.

Источники:

Что каждый разработчик должен знать о URL-адресах

RFC 3986