Действительно ли ссылка / href только с параметрами (начиная с вопросительного знака)?
Эта ссылка действительна?
<a href="?lang=en">eng</a>
Я знаю, что браузеры воспринимают это как положено, и я знаю, что пустая ссылка тоже будет в порядке - но можно ли указывать только параметры?
Мне любопытно, потому что вопросительный знак ("?") Является лишь условным обозначением большинства HTTP-серверов (AFAIK), хотя я признаю, что он является преобладающим.
Итак, резюмируем:
все браузеры будут интерпретировать это правильно?
это в RFC?
могу ли я ожидать каких-то проблем с использованием этого?
ОБНОВЛЕНИЕ: предполагаемое действие при нажатии - это перенаправление на ту же страницу, но с другими параметрами GET ("lang=en" в приведенном выше примере).
2 ответа
Да, это.
Вы можете найти его в RFC 1808 - Относительные унифицированные указатели ресурсов:
Внутри объекта с четко определенным базовым URL
База:<URL:http://a/b/c/d;p?q#f>
относительные URL будут разрешены следующим образом:5.1. Нормальные примеры
?y
знак равно<URL:http://a/b/c/d;p?y>
RFC 3986 - унифицированный идентификатор ресурса (URI): общий синтаксис повторяет то же самое и добавляет больше деталей, включая грамматику:
relative-ref = relative-part [ "?" query ] [ "#" fragment ]
relative-part = "//" authority path-abempty
/ path-absolute
/ path-noscheme
/ path-empty #; zero characters
Это не означает, что все браузеры реализуют его в соответствии со стандартом, но, похоже, это должно быть безопасно.
Да - и он попадет на текущий URL с параметрами, которые вы передаете.
Это очень удобно использовать в ситуациях, когда вы хотите убедиться, что вы не пересекаете границу текущей страницы / формы и продолжаете нажимать то же самое ActionMethod
или что-то слушает с другими параметрами.