Нужно ли кодировать строку запроса? - PullRequest
1 голос
/ 13 декабря 2010

Я вижу, что Firefox НЕ кодирует URL-адрес, например http://www.mysite.com/foo?bar=10/12/2010, когда отправляет запрос GET.Я знаю, что URL-адреса должны быть закодированы, поэтому я ожидал, что Firefox запросит http://www.mysite.com/foo?bar=10%2F12%2F2010 (/ =% 2F).Я проверил запросы GET, используя Wireshark .

Следует ли экранировать строку запроса в URL-адресе?

Я использую WebHarvest и вижу, что при запросе загрузить страницуВ директиве http URL, подобный приведенному выше, закодирован так, как я ожидал (% 2F вместо "/").

Ответы [ 3 ]

1 голос
/ 13 декабря 2010

/ допускается простым текстом в запросе URI :

query       = *( pchar / "/" / "?" )

Все остальное должно быть закодировано с использованием процентного кодирования .

0 голосов
/ 13 декабря 2010

Не могу воспроизвести вашу проблему.

<form>
    <input type="hidden" name="bar" value="10/12/2010">
    <input type="submit">
</form>

Это отображает правильный выход в адресной строке. Разве вы не указали этот URL в элементе <a>? Затем вам нужно экранировать его на HTML-странице самостоятельно , либо жестко запрограммировав его, либо используя функции, предоставляемые языком сервера.

0 голосов
/ 13 декабря 2010

Если после экранирования вы имеете в виду URL-кодировку, краткий ответ - да.

Существует ряд символов, которые обычно кодируются при кодировании URL-адреса, но обычно могут без проблем появляться в URL-адресе.

Но иногда потенциальные проблемы не всегда очевидны.Я бы порекомендовал аргументы запроса кодирования URL и расшифровки их с вашего сайта.В конце концов, если вы декодируете слишком много раз, это не должно вызывать проблем.

...