Под HTTP-контентом понимаются статические изображения, HTML-файлы, CSS-таблицы, Java-скрипты, видеофайлы и прочие объекты, используемые при создании веб-сайтов. Основной принцип – контент по мере необходимости кэшируется на серверах раздачи и отдаётся с оптимального сервера по запросу пользователя. При кэшировании сохраняется не только сам объект данных, но и связанные с ним HTTP-заголовки, что позволяет кэшировать как статический, так и динамически генерируемый контент.
Контент загружается по протоколу HTTP в кэш сервера раздачи с сервера-источника при первом запросе пользователя и используется при обслуживании последующих запросов. Полученный сервером раздачи объект хранится в кэше в течение определенного времени. В случае заполнения кэша происходит замещение объектов по принципу ротации, то есть в первую очередь замещаются объекты с наибольшим сроком хранения. Повторная загрузка из источника происходит только в случае отсутствия запрашиваемого объекта в кэше сервера раздачи.

 

Бесплатное тестовое подключение в течении 14 дней!

Высокая скорость доставки контента любого объема для ваших интернет проектов по всей России

Записаться на тест

 

Алгоритм кэширования

Характерные особенности:

  • кэшируются только избранные объекты;
  • необходимо менять ссылки на сайте для кэшируемых объектов.

Как это работает. Допустим, на вашем сайте www.mycompany.com есть картинка с полным URL вида http://www.mycompany.com/images/logo.gif. Вам будет выделено доменное имя вида customer.probro.ru для модификации доменной части ссылок на кэшируемые объекты. Таким образом, новая ссылка на картинку будем выглядеть так:
http://customer.probro.ru/images/logo.gif
Обратите внимание, что относительный путь объекта не изменился. Обращение пользователя к такому объекту на сайте попадёт на один из серверов раздачи. Если это обращение было первым, объект будет запрошен с сервера-источника, транслирован пользователю и сохранён в кэше для обслуживания последующих запросов.

Управление временем кэширования

Время хранения объекта в кэше сервера раздачи определяется HTTP-заголовками Cache-Control (со значением ‘max-age’) и Expires. Заголовки должны выставляться на сервере-источнике; достаточно указать только один из них. Одновременное использование обоих заголовков не запрещается, хотя и является избыточным; в этом случае следует проследить, чтобы их значения не противоречили друг другу. Если эти заголовки отсутствуют, то по умолчанию время хранения объекта в кэше принимается равным 24-м часам. Следует особо обратить внимание на правильное выставление указанных HTTP-заголовков в случае динамически меняющегося контента, поскольку это напрямую влияет на актуальность версии объекта, хранящегося в кэше.
Высокого уровня актуальности динамического контента можно добиться, используя API сети CDN для удаления отдельных объектов из кэша всех серверов раздачи. В этом случае объект будет загружен из источника заново при первом обращении пользователя.

Обработка query string

При раздаче объектов с URL, содержащими строку параметров (query string) вида:
http://server/path/program?query_string
следует учесть, что по умолчанию при кэшировании такого объекта ‘query string’ удаляется из HTTP-заголовка Request URI. При последующих запросах пользователям будет выдаваться первый закэшированный объект с таким URL, без учёта значения ‘query string’ в запросе. Если такая модель работы не устраивает и сохранение ‘query string’ в URL необходимо – сообщите нам об этом и мы активируем эту опцию.

Псевдостримминг видеофайлов

В нашей сети поддерживается псевдостримминг видеофайлов по протоколу HTTP, технология также известна как HTTP Progressive Download. Поддерживаемые контейнеры видео – MP4 и FLV.
Для поиска по ролику поддерживаются следующие методы:

  • С использованием аргумента start в строке запроса. Время указывается в секундах. Пример URL – http://customer.probro.ru/filetoplay.mp4?start=300
  • Запрос части файла с указанием байтового диапазона (byte-range request).

Первый запрос, когда файла ещё нет в кэше сервера раздачи, не будет иметь возможности поиска по ролику и видео будет проигрываться с начала. В процессе закачки файла в кэш, на источник будут направляться все запросы с аргументом start (запрос на “перемотку” до указанной секунды).
Требования к видеофайлам – использование расширения .mp4 или .flv для MP4- и FLV-файлов соответственно. Также рекомендуется подготовить файлы для псевдостримминга, а именно, правильно выставить ключевые кадры (key frames) при кодировании и вынести метаданные в начало файла. Более подробно об этом можно прочитать по ссылкам:

http://flash.flowplayer.org/plugins/streaming/pseudostreaming.html#prepare
http://nginx.org/ru/docs/http/ngx_http_mp4_module.html
Поддерживается опция ограничения скорости отдачи трафика пользователю при псевдостримминге, что позволяет контролировать объём передаваемого трафика. По умолчанию скорость отдачи не ограничивается.

 

 

Бесплатное тестовое подключение в течении 14 дней!

Высокая скорость доставки контента любого объема для ваших интернет проектов по всей России

Записаться на тест

 

Порядок действий при подключении

  1. Сообщите нам полное доменное имя источника контента.
  2. Определите и сообщите нам необходимые исходные данные (перечислены ниже).
  3. Настройте на сервере-источнике корректную передачу HTTP-заголовков Cache-Control и Expires.
  4. Для размещения ссылок на контент вам будет выделен домен в зоне ответственности CDN вида customer.probro.ru. Для этого домена вы можете создать псевдоним (CNAME) в своей зоне ответственности DNS вида cdn.mycompany.com (опционально).
  5. После получения подтверждения от службы технической поддержки проверить корректность загрузки веб-контента на тестовом объекте/домене.
  6. Для кэшируемых объектов разместить на своем сайте ссылки с использованием выделенного доменного имени в зоне ответственности CDN (или псевдонима, указанный в записи CNAME).

Необходимые исходные данные:

  • Общий объем веб-контента, подлежащего распространению (в случае, если этот объем превышает 100 Мбайт). В соответствии с этим значением для вас будет определён размер кэша на каждом сервере раздачи. По умолчанию выделяется 100 Мбайт.
  • Время хранения объектов, для которых не выставлен заголовок Cache-Control или Expires. По умолчанию такой контент хранится в кэше 24 часа.
  • В случае раздачи видеофайлов по протоколу HTTP (HTTP Progressive Download, псевдостримминг) – определить необходимость ограничения скорости отдачи и указать значение, если такая необходимость есть. По умолчанию скорость отдачи не ограничивается.
  • Если вы используете строку параметров (query string) в URL объектов, сообщите нам, следует ли кэшировать такие объекты с полными URL, включающими строку параметров. По умолчанию ‘query string’ удаляется из URL кэшируемых объектов.