Использование абсолютных и относительных путей для изображений

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

хотя для чистоты неплохо иметь меньше символов относительного пути, но интересно, есть ли другие замедления/последствия для использования абсолютных/полных путей? Я думаю, что может быть поиск DNS, связанный с полным путем.

каковы другие последствия, если таковые имеются?

3 ответов


использование абсолютных путей заставляет веб-сервер устанавливать соединение, отправлять и получать HTTP-запросы. Если используется relative, соединение уже установлено, поэтому ему не нужно проходить через эту логику (следовательно, увеличивая скорость загрузки страницы). Вы, вероятно, не увидите удивительной разницы, но каждый сохраненный бит-это хорошо, верно?


Edit: после выполнения быстрого теста разница крайне незначительна и, похоже, не создает такого большого случая за мой ответ. Я создал тестовую страницу с одним и тем же изображением дважды, один с относительным и один с абсолютным путем:http://damonbauer.me/test/index.html.

тест один: Изображение с абсолютным путем в HTML-коде сначала: (нажмите для большей версии) http://damonbauer.me/test/images/results1.jpg

абсолютное изображение пути заняло 869ms для загрузки, в то время как относительное изображение пути, указанное вторым в HTML-коде, загружено в 635ms.

тест два: Изображение с относительным путем в HTML-коде сначала: (нажмите для большей версии) http://damonbauer.me/test/images/results1.jpg

для загрузки абсолютного образа пути потребовалось 303 мс, а относительный образ пути, указанный первым в HTML-коде, загружен в 315 МС.

мое мнение? Быстрее загружать с помощью relative. Даже если он указан после абсолютного изображения пути, для загрузки относительного изображения потребовалось всего 12 мс. Когда изображение абсолютного пути было загружено вторым, для загрузки потребовалось 234ms больше времени. В обоих случаях они близки, и мне кажется, что больше важно, какие нагрузки сначала. В любом случае, я бы пошел с родственником, хотя бы ради переносимости.


нет, нет никакой заметной разницы, и оба имеют свое использование. Нет DNS-поиска на стороне клиента, это браузер (или, может быть, веб-сервер?) это изменяет url-адрес на то, что он должен быть. Используйте их как то, что вам нужно, относительные пути более портативны (не нужно ничего делать, чтобы заставить их работать в вашей разработке или живом сервере), в то время как абсолютные пути приведут вас к определенному местоположению (независимо от того, на каком сервере вы находитесь).
В моем случае я использую относительные пути, если я не хочу определенного адрес. Кроме того, когда вы переключаетесь с небезопасного на безопасный, вы хотите указать https так полный путь (или сделать дополнительный редирект где-то еще)


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

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