Какая точка с запятой зарезервирована в URL?

Вот еще один пример, если у вас длинный и лат, в моем случае с использованием пакета данных Datatype Umbraco Google Map и вывода списка div с классом «map», например.

52.21454000000001,0.14044490000003407,13

мой JavaScript с помощью Google Maps API v3 на основе примеров Cultiv Razor

$('.map').each(function (index, Element) {
    var coords = $(Element).text().split(",");
    if (coords.length != 3) {
        $(this).display = "none";
        return;
    }
    var latlng = new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1]));
    var myOptions = {
        zoom: parseFloat(coords[2]),
        center: latlng,
        mapTypeId: google.maps.MapTypeId.ROADMAP,
        disableDefaultUI: false,
        mapTypeControl: true,
        zoomControl: true,
        zoomControlOptions: {
            style: google.maps.ZoomControlStyle.SMALL
        }
    };
    var map = new google.maps.Map(Element, myOptions);

    var marker = new google.maps.Marker({
        position: latlng,
        map: map
    });
});

30
задан Nicole 29 January 2010 в 17:31
поделиться

3 ответа

В конце раздела 3.3 есть объяснение.

Помимо сегментов точек в иерархических путях, сегмент пути считается непрозрачным в соответствии с общим синтаксисом . Приложения, создающие URI, часто используют зарезервированные символы , разрешенные в сегменте, для ограничения схемы -специфические или зависящие от обработчика разыменования подкомпоненты. Например, зарезервированные символы (";") и равенства ("=") являются часто используется для разделения параметров и значений параметров , применимых к этому сегменту. Зарезервированный символ запятой (",") часто используется для аналогичных целей. Например, один производитель URI может использовать такой сегмент, как "name; v = 1.1" , чтобы указать ссылку на версию 1.1 "name" , тогда как другой может использовать такой сегмент, как "name, 1.1", чтобы указать то же самое. Типы параметров могут определяться специфической для схемы семантикой , но в большинстве случаев синтаксис параметра зависит от реализации URI {{ 1}} алгоритм разыменования.

Другими словами, он зарезервирован для того, чтобы люди, которым нужен список с разделителями чего-либо в URL-адресе, могли безопасно использовать ; в качестве разделителя, даже если части содержат ; , поскольку пока содержимое закодировано в процентах.Другими словами, вы можете сделать это:

foo;bar;baz%3bqux

и интерпретировать его как три части: foo , bar , baz; qux . Если бы точка с запятой не была зарезервированным символом, ; и % 3b были бы эквивалентны, поэтому URI был бы неправильно интерпретирован как четыре части: foo , бар , баз , qux .

37
ответ дан 27 November 2019 в 18:20
поделиться

Намерение более понятнее, если вы вернетесь к более старые версии спецификации:

  path_segments = segment *( "/" segment )
  segment       = *pchar *( ";" param ) 

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

Я считаю, что он имеет свое происхождение в FTP URI S.

7
ответ дан 27 November 2019 в 18:20
поделиться

Раздел 3.3 описывает это - это непрозрачный разделитель, который приложение, создающее URI, может использовать, если это удобно:

Помимо сегментов точек в { {1}} иерархических путей, сегмент пути считается непрозрачным в соответствии с общим синтаксисом . Приложения, создающие URI, часто используют зарезервированные символы , разрешенные в сегменте, для разграничения субкомпонентов , зависящих от схемы или обработчика разыменования . Например, зарезервированные символы (";") и равенства ("=") часто используются для разделения параметров и значений параметра , применимых к этот сегмент. Зарезервированный символ запятой (",") часто используется для аналогичных целей. Например, один производитель URI может использовать сегмент , например "name; v = 1.1 ", чтобы указать ссылку на версию 1.1 " name ", тогда как другой может использовать сегмент , такой как" name, 1.1 ", чтобы указать то же самое. Типы параметров могут быть определены семантикой конкретной схемы, но в большинстве случаев синтаксис параметра зависит от реализации URI Алгоритм разыменования .

5
ответ дан 27 November 2019 в 18:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: