Пустые параметры строки запроса URI: "a = & b =" против "a & b" - PullRequest
6 голосов
/ 26 марта 2012

Должны ли следующие URL-адреса считаться функционально эквивалентными?

http://example.com/foo?a=&b=

http://example.com/foo?a&b

Это произошло, когда пользователь модуля Drupal, который я написал, который анализирует и затем переписывает URI заметил , что код иногда вызывает неожиданное изменение частей строки запроса из-за того, как некоторые из лежащих в основе PHP функции ведут себя. Например:

parse_str("a&b", $values); print http_build_query($values);

a=&b=

Стоит ли мне беспокоиться об этом?

Редактировать, чтобы SO перестал жаловаться, что этот вопрос похож на другой: вопрос в том, можно ли считать, что «нет значения для X» и «пустое значение для X» эквивалентны, а не в стиле «нет значения» синтаксически правильно (что это такое).

1 Ответ

1 голос
/ 01 марта 2017

RFC 3986 Унифицированный идентификатор ресурса (URI): общий синтаксис не имеет ничего сказать о структуре строки запроса, кроме того, как должны обрабатываться такие символы, как ?.Строго говоря, ваши два примера URL отличаются .Конечно, приложение, которое получает эти строки запроса, может рассматривать их как функционально эквивалентные, но это не то, что вы можете определить только по URL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...