Разрешена ли относительная ссылка с параметрами и без пути?

#html

Вопрос:

Могу ли я полностью опустить путь из ссылки и начать со знака вопроса?

Например: Если моя веб-страница есть https://example.com/mycgi , могу ли я получить ссылку на форму <a href="?foo=bar">bar</a> ?

Я протестировал это в Firefox, и ссылка работает так, как ожидалось — щелчок по ней приведет меня к https://example.com/mycgi?foo=bar . Будет ли это работать одинаково во всех современных браузерах? Какова наилучшая практика для такого типа ссылок?

Я пробовал искать MDN, в котором обычно есть хорошая таблица функций и поддержка версий браузера, но https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#href не содержит подробных сведений об относительных форматах ссылок.

Я обычно использую href="mycgi?foo=bar" , но это означает добавление менее переносимой ссылки mycgi на страницу. Я бы предпочел не добавлять динамически mycgi к каждой ссылке в cgi, которая генерирует страницу.

Это чистый вопрос совместимости html и браузера. Я не ищу серверные или клиентские инструменты для изменения ссылок.

Комментарии:

1. Вы должны узнать об абсолютных и относительных путях. developer.mozilla.org/en-US/docs/Learn/Common_questions/…

2. @epascarello Все относительные URL-адреса там указывают, по крайней мере, часть пути. Мой вопрос заключается в том, чтобы полностью опустить путь и указать только параметры.

Ответ №1:

С этим не должно быть никаких проблем.

Вы должны быть в состоянии написать любой из них, и они должны разрешаться, как и любой другой элемент ссылки. Возможно, вы не захотите тестировать его в каждом крупном браузере. Но если вы найдете браузер, который его не поддерживает, я почти уверен, что браузер не соответствует спецификациям.

 href="?foo=bar"
 

следует принять решение о domain.com/currentPath/CurrentPage?foo=bar

 href="newPage?foo=bar"
 

следует принять решение о domain.com/currentPath/newPage?foo=bar

 href=".?foo=bar"
 

следует принять решение о domain.com/currentPath/?foo=bar

 href="/?foo=bar"
 

следует принять решение о domain.com/?foo=bar

и т.д…

Комментарии:

1. Спасибо за список альтернативных вариантов. У вас есть ссылка на них? У меня нет доступа ко «всем основным браузерам», что является одной из причин, по которой я задал этот вопрос.

2. раздел, посвященный конкретно поисковым параметрам : url.spec.whatwg.org/#interface-urlsearchparams

3. ранее размещал неверный URL-адрес : несколько примеров url.spec.whatwg.org/#urls Я почти уверен, что если ваш URL-адрес будет проанализирован, он просто сработает ! Поэтому, если он работает в firefox, он должен работать везде. И если google.com/fakefolder/../alsoafakefolder/../search? q=тест работает, я думаю, что с тобой все в порядке !