Только в строке запроса: знак плюса является зарезервированным символом, поэтому он должен быть закодирован для передачи фактического «+» в пути или в строке запроса. Это использует в качестве замены для пространств является W3C Recommendation, который относится только к строке запроса:
В строке запроса, знак плюс зарезервирован в качестве сокращенной записи для пробела. Следовательно, должны быть закодированы знаки реального плюса . Этот метод был использован , чтобы упростить передачу URI-запросов в системах , которые не допускали пробелов.
URI сравнение (RFC 2616):
При сравнении двух URI, чтобы решить, если они совпадают или нет, клиент должен использовать чувствительные к регистру октета по-октет сравнения всей Юрис, с эти исключения:
- A port that is empty or not given is equivalent to the default
port for that URI-reference;
- Comparisons of host names MUST be case-insensitive;
- Comparisons of scheme names MUST be case-insensitive;
- An empty abs_path is equivalent to an abs_path of "/".
другие, чем те, в «зарезервировано» и «Unsa Персонажи fe "(см. RFC 2396 [42]) эквивалентны их кодировке "% "HEX HEX".
зарезервированные символы (RFC 2396)
";" | "/" | "?" | ":" | "@" | "&" | "=" | "+" | "$" | ","
Итак, на третьем круге: нет ничего официального, объявляющего их одним и тем же. Использование «+» буквально для направления http://example.org/hello+world
в каталог с именем hello+world
неверно, но нет ничего, что говорит о том, что он должен считаться эквивалентным пробелу.
Никогда не рассматривал это раньше, будет интересно увидеть правильный ответ на этот хороший вопрос. – Dave