Давно уже заметил, что Яндекс в вёрстке ссылки на различные библиотеки и картинки, находящиеся на его CDN, ставит в такой форме:
<img src="//yandex.net/picture.png"/>
Интересует вопрос такого сокращения указания протокола "http://" до просто двух слешей "//". На всех ли клиентах (браузерах) это нормально обрабатывается, не вызывает дополнительных запросов браузера, нормально ли этот способ поддерживается в мобильных браузерах? Кто что знает?
На чем основана Ваша уверенность?
Все же я убежден, что это просто относительный путь, поскольку именно наличием лидирующего слэша и определяется относительность пути.
При этом не важно сколько слэшей находится в начала URL'а, а также то, что название директории (yandex.net) напоминает имя домена (или совпадает с ним). Я не прав?
Основана банальными проверками, я с давних пор (после того, как увидел у Яндекса) тоже применяю эту тактику. Можете для проверки создать в блокноте у себя на компе простую HTML страничку и вставить на неё внешнее изображение:
taliban, эммм… При критических сбоях ОС и жёсткого диска (когда бились секторы жёсткого) — видел. А так, чтобы при этом всё нормально работало — нет. А к чему вопрос?
Окей, значит логично предположить, что для таких адресов поведение браузеров никак не отличается от адресов «привычных» (не вызывает дополнительных запросов к серверу и т.д.) Спасибо.
Всё равно непонятно почему они тогда избирательно этот подход применяют, а не для всех ресурсов. Интересно. Оттого и родилось подозрение, что возможно отдельные платформы типо мобильных браузеров некорректно воспринимают такую адресацию.
"//" означает абсолютный адрес, используя тот же протокол. Что-то, возможно, надо брать именно из http, там оно задано явно.
Может все горазде банальнее, и в разных модулях/частях сайта просто разная запись, разработчики тоже люди…
Ну видимо что просто работает — видимо действительно везде. А вот по части того КАК оно работает — тут они могли и пожертвовать некоторыми моментами. Просто я не знаю как этот механизм работает.
Представим что мы находимся на странице открытой по протоколу "https". На странице есть картинка с HTML-кодом <img src="//site.ru/pic.jpg"/>. Вот браузер её однозначно сразу запросит тоже по HTTPS или сначала проверит доступность по HTTP? Если второе — это дополнительный запрос, дополнительные возможные баги при неучитывании этого фактора. Яндекс мог такой «мелочью» пренебречь, а вот для других может это важно.
Просто опять же интересно почему они применяют такой подход «избирательно»? Некоторые ресурсы (картинки, скрипты) адресуют в такой форме, а некоторые в привычной всем, полной форме.
А теперь наверно главный вопрос: а почему два слеша? Один слеш указывает на корень сайта с текущим протоколом. Человек спросил про (!!) два слеша. Почему два? Вот и мне интересно.