Действительно ли ссылка / href только с параметрами (начиная с вопросительного знака)?

Эта ссылка действительна?

<a href="?lang=en">eng</a>

Я знаю, что браузеры воспринимают это как положено, и я знаю, что пустая ссылка тоже будет в порядке - но можно ли указывать только параметры?

Мне любопытно, потому что вопросительный знак ("?") Является лишь условным обозначением большинства HTTP-серверов (AFAIK), хотя я признаю, что он является преобладающим.

Итак, резюмируем:

  1. все браузеры будут интерпретировать это правильно?

  2. это в RFC?

  3. могу ли я ожидать каких-то проблем с использованием этого?

ОБНОВЛЕНИЕ: предполагаемое действие при нажатии - это перенаправление на ту же страницу, но с другими параметрами 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 или что-то слушает с другими параметрами.

Другие вопросы по тегам