Вопрос

Являются URL-адресами формы http://asdf.com/something.do?param1=true ?параметр 2=false действительный?

Я не думаю, что второе?разрешено в допустимых URL-адресах и что вместо этого это должен быть амперсанд (&), но я не могу найти что-либо об этом в http 1.1 rfc.Есть какие-нибудь идеи?

Это было полезно?

Решение

Недопустимо использовать? снова. ? должен указывать начало списка параметров. & Усилитель; следует разделить параметры.

Из RFC 3986 :

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

Из RFC 1738 :

  

URL-адрес HTTP принимает форму:

http:// <host> : <port> / <path> ? <searchpart>
     

где <host> и <port> соответствуют описанию в разделе 3.1. Если :<port>   опущен, порт по умолчанию равен 80. Нет имени пользователя или пароля   позволил. <path> - это селектор HTTP, а <searchpart> - это запрос   строка. <=> не является обязательным, как и <=> и его   предыдущий "? " ;. Если ни <=>, ни <=> нет, то & Quot; / & Quot;   также может быть опущен.

     

В компонентах <=> и <=> " / " ;, " ;; " ;, "? " являются   зарезервированный. & Quot; / & Quot; символ может использоваться в HTTP для обозначения   иерархическая структура.

часть поиска / часть запроса описана здесь .

Другие советы

используйте & для второго и третьего

т. е. http://asdf.com/something.do?param1=true ¶m2=ложь

заявка/x-www-form-urlencoded

Это тип контента по умолчанию.Формы, отправляемые с этим типом контента, должны быть закодированы следующим образом:

  1. Имена и значения элементов управления экранируются.Символы пробела заменяются на +, а затем зарезервированные символы экранируются, как описано в [RFC1738], раздел 2.2:Не буквенно-цифровые символы заменяются на %HH, знак процента и две шестнадцатеричные цифры, представляющие ASCII-код символа.Разрывы строк представлены в виде пар "CR LF" (т.е., %0D%0A).
  2. Имена/значения элементов управления перечислены в том порядке, в котором они отображаются в документе.Имя отделяется от значения символом = а пары имя / значение отделены друг от друга &.

заявка/x-www-form-urlencoded

Как уже упоминалось, его нельзя использовать снова. Однако, если у вас есть? символ как часть значения параметра, вы можете кодировать его как% 63 (точно так же, как символ пробела, который кодируется как% 20).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top