Производительность в сети - Советы по ресурсам - есть ли какое-либо негативное влияние не использовать протокол внутри 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 автоматически, без необходимости изменять код.