Производительность в сети - Советы по ресурсам - есть ли какое-либо негативное влияние не использовать протокол внутри href preconnect/dns-prefetch?

Я пытаюсь как можно более правильно использовать подсказки ресурсов браузера ( https://w3c.github.io/resource-hints/).

Я заходил на несколько крупных веб-сайтов, и большинство из них указывают протокол http / https, например, так:

<link rel="preconnect" href="https://cdn.krxd.net">
<link rel="preconnect" href="https://beacon.krxd.net">
<link rel="preconnect" href="https://ads-api.ft.com">
<link rel="preconnect" href="https://www.googletagservices.com">
<link rel="preconnect" href="https://partner.googleadservices.com">
<link rel="preconnect" href="https://securepubads.g.doubleclick.net">
<link rel="preconnect" href="https://tpc.googlesyndication.com">
<link rel="preconnect" href="https://imasdk.googleapis.com">
<link rel="preconnect" href="https://z.moatads.com">

Но я обнаружил, что Shopify не указывает протоколы в разделе, к которому они относятся

<link rel="dns-prefetch preconnect" href="//cdn.shopify.com" />
  <link rel="dns-prefetch preconnect" href="//www.google-analytics.com" />
  <link rel="dns-prefetch preconnect" href="//stats.g.doubleclick.net" />
  <link rel="dns-prefetch preconnect" href="//bat.bing.com" />
  <link rel="dns-prefetch preconnect" href="//bat.r.msn.com" />

Это правда, что в базовой спецификации W3C также есть примеры, где нет протокола.

Я задавался вопросом, может ли не указать, будет ли это http или https иметь влияние / стоимость, так как браузер должен будет получать больше информации (одну для http, одну для https), например, информацию 2 днс?

1 ответ

Решение

Я задавался вопросом, может ли не указать, будет ли это http или https иметь влияние / стоимость, так как браузер должен будет получать больше информации (одну для http, одну для https), например, информацию 2 днс?

Нет, браузер не должен делать два запроса.

Это называется относительным URI протокола - браузер завершит его до полного, абсолютного, используя протокол, по которому была запрошена страница, в которую он был встроен.

Если вы запросили страницу, это встроено в использование https:// - затем //foo.bar/ станет https://foo.bar/; если вы использовали http:// только тогда оно станет http://foo.bar/

Это средство, позволяющее авторам сайта писать свой код "независимо от протокола". Вы можете развернуть сайт, используя это для ссылки на внешние ресурсы, чтобы к нему можно было получить доступ либо через HTTP или HTTPS, без необходимости изменять все эти ссылки. И это помогает предотвратить проблемы, которые могут возникнуть при переносе сайта с HTTP на HTTPS. Если внешние ресурсы были направлены на использование http://... в этом случае браузер заблокирует их. Используя эту технику, он будет запрашивать версию HTTPS автоматически, без необходимости изменять код.

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