Будет ли браузер извлекать данные из кэша, если один и тот же ресурс запрашивается другим источником? - PullRequest
1 голос
/ 25 сентября 2019

Допустим, у вас есть ресурс, может быть изображение, может быть jQuery из cdn.Этот ресурс размещен по некоторому стороннему URL, например https://example-cdn.com/resource.ext.Давайте также предположим, что он кешируется (что бы это ни значило - дайте мне знать, если это нетривиальная деталь).

Когда https://website-a.com запрашивает ресурс (предположим, он был включен в html напрямую),загрузка занимает некоторое время, но затем браузер кэширует его для более быстрой загрузки в следующий раз.

Теперь https://website-b.com также включает этот ресурс в свой HTML, используя точно такой же URL-адрес (https://example-cdn.com/resource.ext).

У меня такой вопрос: достигнет ли браузер кэшированного ресурса (поскольку он уже был получен при загрузке https://website-a.com), или есть какая-то причина, по которой он не сможетнайти его в кеше и снова загрузить его по сети?

Редактировать: Этот ответ об обмене стека, кажется, содержит некоторую связанную информацию.Может ли кто-нибудь убедиться в правильности этого ответа во всех своих утверждениях о кешировании?https://webmasters.stackexchange.com/a/84685

1 Ответ

1 голос
/ 26 сентября 2019

Да, ресурс будет кэширован.

Это следует из семантики HTTP и URL.URL-адрес - это универсальное расположение ресурса: он предоставляет местоположение ресурса в форме, которую можно использовать где угодно и которая всегда указывает на один и тот же ресурс: в <a> элементах различных веб-сайтов, на визитных карточках, на рекламных плакатах,HTTP-клиент (веб-браузер) знает, что URL-адрес одного веб-сайта ссылается на один и тот же ресурс, если он используется на другом веб-сайте, и поэтому безопасно повторно использовать кэшированную копию.

Исключение из этогокогда URL является относительным URL (в вашем примере используются абсолютные URL).Чтобы использовать относительный URL-адрес, клиент должен разрешить URL-адрес, используя некоторый context , для получения абсолютного URL-адреса.Разные веб-сайты имеют разные контексты и, следовательно, разрешают разные абсолютные URL-адреса.Это абсолютный URL-адрес, который клиент должен использовать для извлечения ресурсов и который используется в качестве ключа в его кэше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...