Ссылка link/href с параметрами (начиная с вопросительного знака) действительна?
Является ли эта ссылка действительной?
<a href="?lang=en">eng</a>
Я знаю, что браузеры относятся к нему так, как ожидалось, и я знаю, что пустая ссылка тоже будет в порядке - но можно ли просто указать параметры?
Мне любопытно, что знак вопроса ( "?" ) является только соглашением большинством HTTP-серверов (AFAIK), хотя я признаю, что он является преобладающим.
Итак, чтобы повторить:
ОБНОВЛЕНИЕ: предполагаемое действие при щелчке - это перенаправление на ту же страницу, но с разными параметрами GET ( "lang = en" в приведенном выше примере).
Ответы
Ответ 1
Да, это так.
Вы можете найти его в RFC 1808 - Relative Uniform Resource Locators:
Внутри объекта с четко определенным базовым 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
Теперь, это не значит, что все браузеры реализуют его в соответствии со стандартом, но похоже, что это должно быть безопасно.
Ответ 2
Да - и он ударит по текущему URL-адресу с параметрами, которые вы передаете.
Это очень удобно использовать в ситуациях, когда вы хотите убедиться, что вы не пересекаете текущую границу страницы/формы и продолжаете бить то же самое ActionMethod
, или все, что прослушивается с разными параметрами.