Root-linking ( / ) VS absolute-linking (например. http://www.)

В настоящее время я использую корневую ссылку на моих сайтах, например. <a href="/">Home</a>и <a href="/contact">Contact</a>. Мне это нравится, так как это делает код немного чище.

Хотя мне интересно, есть ли какие-либо недостатки, используя этот метод, например. если это несколько замедляет скорость страницы или плохо для SEO?

Редактировать:

Также мне интересно об изображениях:

Бы например «http://www.domain.com/img/image1.jpg» загрузить быстрее, чем «/img/image1.jpg»? Если да, то больше 50 миллисекунд?

Я знаю, что абсолютная связь трудно поддерживать, например. localhost или если вы хотите изменить на » https://». Но я все еще удивляюсь скорости…

2 ответа

  1. Это, безусловно, не плохо для SEO. GoogleBot и браузеры автоматически добавляют домен к корневым ссылкам. Достаточно умен, чтобы понять это.

    Мне было бы интересно посмотреть, сделал ли кто-нибудь тест загрузки страницы для сравнения загрузки активов. Думаю, разница будет незначительной.

    TimelineДля оценки производительности загрузки страницы можно использовать вкладку средства разработчика (Chrome).

  2. С технической точки зрения это не имеет значения. Браузер должен создать абсолютный URL перед выполнением любых HTTP-запросов. Раздел 2.5 спецификации HTML5 содержит точные инструкции по разрешению URL-адресов, например, для hrefатрибута. Четвертый шаг актуален:

    Если алгоритм был вызван с абсолютным URL для использования в качестве базового URL, пусть baseэто абсолютный URL.

    В противном случае пусть baseэто базовый URL элемента.

    «Базовый URL-адрес элемента» обычно совпадает с базовым URL-адресом документа, если вы явно не измените его.

    Это единственная точка, в которой нотация URL имеет значение. Параметр baseи URL-адрес будут переданы синтаксическому анализатору, который затем построит абсолютный URL-адрес из этих значений. Если URL-адрес документаhttps://example.com/foo/bar.html, то разрешение /stackoverflowи https://example.com/stackoverflowдаст тот же URL (https://example.com/stackoverflow).


    После разрешения URL-адреса браузер обычно делает запрос HTTP к серверу. Это, скорее всего, не будет включать запрос DNS, поскольку кэш DNS, скорее всего, содержит запись для этого узла.
    Сам HTTP-запрос также будет выглядеть одинаково (имя хоста и путь передаются отдельно).


    Говоря о производительности, нет буквально никакой разницы. (Если не учитывать те несколько наносекунд, необходимых для поиска базового URL в DOM.)

    Это просто вопрос нотации, и обычно проще писать относительные URL-адреса (относительно документа или относительно корневого каталога), однако если вы делаете что-то больше, чем статический веб-сайт, вы должны рассмотреть возможность создания абсолютных URL-адресов на сервере. Например, пользователь может принять решение не использовать приложение в корневом каталоге,а в подкаталоге, чтобы нарушить все URL-адреса, относящиеся к корневым.


    То же самое касается SEO, поисковые системы и искатели строят абсолютные URL-адреса точно так же, как браузеры.