Назад | Перейти на главную страницу

Есть ли смысл использовать заголовки с истекающим сроком действия в далеком будущем с помощью SPDY push?

Насколько я понимаю, в SPDY push сервер обслуживает HTML-документ, просматривает его перед отправкой и решает, что мне нужны ресурсы изображений / css X Y и Z, поэтому отправляет их также.

Как он узнает, что не стоит беспокоиться, если они уже кешированы моим браузером? Или в принципе нет смысла пытаться кэшировать статические ресурсы, если ваши клиенты используют браузеры spdy / 3?

(Очевидно, не каждый клиент будет, но меня интересует этот случай)

Если вам действительно нужно оптимизировать время загрузки первой страницы:

  • Создайте подпись (подстроку хэша md5 / sha) всех ваших статических файлов начальной загрузки, необходимых во время загрузки первой страницы. Обычно это только базовый css + js для начальной загрузки. С этого момента обычно js загружает материал (особенно для клиентских приложений, поэтому вам не понадобится серверный push, и клиенты будут повторно использовать кеш соответствующим образом)
  • Установите долговременный файл cookie "bootstrap-version" в подпись версии начальной загрузки.
  • Когда клиент запрашивает страницу:

    • если файл cookie версии начальной загрузки устарел или отсутствует, инициируйте отправку файлов начальной загрузки на сервер.
    • В противном случае предположите, что клиент кеширует их (может и нет, что приведет к небольшому регрессу, но в 99% случаев это будет)

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

Реализации Go и node spdy позволяют играть с серверами. Модули AFAIK nginx / apache еще не имеют этих функций. Я надеюсь, что они скоро добавят его на основе заголовков, предоставленных приложением, или аналогичных.

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

Источник: http://www.chromium.org/spdy/link-headers-and-server-hint