Кратко
- Первый публичный проект W3C о Resource Hints, датированный октябрём 2014 года, описал
preconnectдля случая, когда происхождение будущего ресурса известно раньше полного URL. Можно заранее начать DNS-поиск, TCP-рукопожатие и при необходимости согласование TLS. - Позднейшие проекты разграничили
dns-prefetch,preconnect,prefetchиprerender. Браузер вправе полностью подготовить связь, выполнить часть работы или пропустить подсказку из-за ограничений устройства и сети.
Галерея знает сервер, на котором лежат фотографии. Но какую из них посетитель откроет следующей, она не знает. Загружать всё подряд — всё равно что накрыть десять столов по одному намёку на ужин. Подготовить связь с известным сервером скромнее. Между знанием происхождения и знанием конкретного файла есть время, которое preconnect предложил использовать.
Первый публичный проект W3C от 21 октября 2014 года позволял автору страницы или серверу подсказать браузеру будущую сторону связи. В тексте перечислены ранний DNS-поиск, TCP-рукопожатие и необязательное согласование TLS. Рядом находился preload, относящийся к определённому ресурсу. Разница принципиальна: поздороваться с рестораном можно до заказа, а получить невыбранное блюдо нельзя.
Проект от 4 мая 2017 года уже разделял четыре отношения ссылок. dns-prefetch касается раннего разрешения имени. preconnect готовит соединение с происхождением. prefetch забирает ресурс, который может понадобиться при следующем переходе. prerender способен подготовить будущий документ. Каждый следующий шаг требует более смелого предположения и большей работы. Знание адреса сервера не раскрывает решение читателя.
Проект от 27 июня 2019 года показывает ситуацию с динамической URL. Полный путь к файлу появляется при построении страницы, хотя происхождение известно раньше. Если переговоры с сервером начались в этом промежутке, после появления URL запросу не нужно ждать всего процесса установления соединения. Это не магия ускорения: знакомство происходит раньше, чем становится известна тема разговора.
У раннего знакомства есть цена. Проект от 5 октября 2020 года оставляет браузеру выбор: полное рукопожатие, частичная подготовка или отказ. Браузер же решает, сколько соединений открывать к одному источнику. Протокол, состояние сети, возможности устройства и общие ограничения на соединения меняют разумный ответ. Подсказка страницы не равна приказу занять все столы.
Подготовленное соединение может не пригодиться. Тогда сеть и устройство потратили усилия без пользы для следующего запроса. Масса спекулятивных соединений способна конкурировать с загрузкой текущей страницы. В проекте 2020 года сказано и другое: незавершённая работа preconnect не должна откладывать событие загрузки документа. Будущего гостя нельзя обслуживать за счёт уже пришедшего.
История публикаций W3C начинается первым публичным проектом октября 2014 года и перечисляет последующие рабочие проекты. Начальная пара preconnect и preload превратилась в более чёткое разделение поиска имени, соединения, раннего получения ресурса и подготовки документа. Эти тексты были проектами. Их практическое наблюдение пережило смену редакций: иногда страница знает собеседника раньше, чем знает предмет разговора. Браузер сам решает, звонить ли немедленно.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





