Как я могу сохранить файлы в кеше браузера после отправки его нажатием Server?

У меня есть Apache с http2, и я сделал серверный толчок файлов, которые я хотел бы сохранить в кеше браузера, но это не так, и я не знаю почему.

Я сделал пуш с php-файлом, следующий.

header( 'Link: <'https://www.myweb.com/mypath'>;rel="preload";as="video"', FALSE );

С моей точки зрения, Push сервера работает, потому что я вижу запросы к серверу в access_log, но я думаю, что файлы должны быть сохранены в кеше браузера, но это не так.

Я пытаюсь сделать серверный push-файл, а затем запросить этот файл и получить его из кеша (см. На Сетевой консоли Chrome "из кеша").

Спасибо

1 ответ

Решение

Все, что вы сказали, было правдой, и у меня это было в моем коде, но проблема была в понимании сохранения Google Chrome Cache.

Когда вы отправляете какой-либо файл с помощью Server Push по соединению HTTP2, файл, запрошенный через серверную рассылку, отправляется как ответ клиенту, но Google Chrome не сохраняет его в кеше Google Chrome, пока файл не будет запрошен браузером.

Например: сервер отправляет ответ index.html со своим stylesheet.css (этот отправляется с push-запросом сервера). Таблица стилей будет сохранена в кэш Google Chrome только тогда, когда Google Chrome запросит Stylesheet.css (клиент запросил только индекс html и нажмет на таблицу стилей). Если Google Chrome не запрашивает его, это будет невостребованный толчок, и он не будет сохранен в кэш.

Если вы добились успеха и перезагрузили страницу, вы увидите "из кэша" в Google Chrome.

Спасибо за ваше время.

Другие вопросы по тегам