Вы выбрали лучшую сеть доставки контента (CDN), настроили свой ресурс, и вашим пользователям нравится работать на вашем сайте — что еще мы можем сделать? Как вы можете убедиться, что вы в полной мере используете то, что может предложить CDN? Что ж, если ваш сайт использует JSONP (JSON с отступами), мы можем использовать наш усовершенствованный движок Lua, чтобы кэшировать контент CDN для вас, еще больше снижая нагрузку на ваш источник, увеличивая коэффициент попаданий в кэш и сжимая еще лучше. производительность вне вашего сайта. Давайте копнем глубже.

Что такое JSONP?

JSONP — это метод интерпретации фрагмента кода браузером, несмотря на то, что он происходит из домена, отличного от вашего основного домена. Таким образом, это позволяет избежать конфликта с политикой одного и того же происхождения браузеров. JSONP использует тег ‹script›, на который не распространяется политика одинакового происхождения и который может выполнять содержимое, полученное из разных доменов. Полезная нагрузка JSON заключена в вызов функции (или «дополнена»), что позволяет браузеру выполнить функцию, используя возвращенный объект JSON. Заполнение объекта определяется через строку запроса, обычно с «обратным вызовом» в качестве параметра и именем функции в качестве значения.

Что такое Lua Engine?

Lua — это широко используемый легкий, высокопроизводительный язык сценариев, используемый для всех видов приложений, от игр до веб-приложений и обработки изображений. Все наши пограничные серверы способны выполнять сценарии Lua. Одним из основных преимуществ Lua является его полная асинхронность. Асинхронность просто означает, что наши пограничные серверы могут прерывать сценарии Lua во время выполнения определенных операций и разрешать выполнение другого входящего запроса. Весь код Lua написан в последовательном формате, а вся асинхронная логика скрыта от пользователя. Кроме того, Lua невероятно быстр благодаря использованию интерпретатора LuaJIT.

Чем может помочь сеть доставки контента Edgecast?

Используя нашу функциональность Lua, CDN сделает запрос на общую версию оболочки, в которой CDN может кэшировать. Затем мы заменяем общий отступ вокруг объекта JSON параметром в строке запроса. Это обновленное содержимое возвращается пользователю. В следующий раз, когда CDN получит запрос, ей не нужно далеко ходить за объектом JSONP, поскольку он уже кэширован. Быстрая замена оболочки на то, что находится в строке запроса, и ваши пользователи получают свой контент быстрее, чем когда-либо прежде. Давайте рассмотрим это шаг за шагом:

Исходный запрос:

http://jsonp.mydomain.com/unit/json_object?callback=wrapper1

Вместо этого Lua Engine запрашивает это :

http://jsonp.mydomain.com/json_object?callback=genericwrapper

Кэшируемый ответ будет:

genericwrapper({"Foo":"Bar", "Number":1, "Delivery":"Fast"})

Lua Engine заменяет универсальную оболочку строковым значением запроса, и CDN возвращает:

wrapper1({"Foo":"Bar", "Number":1, "Delivery":"Fast"})

Для следующего пользователя запрос:

http://jsonp.mydomain.com/json_object?callback=wrapper2

Lua запрашивает универсальный объект, который находится в кеше, затем заменяет оболочку строковым значением запроса, и CDN возвращает:

wrapper2({"Foo":"Bar", "Number":1, "Delivery":"Fast"})

Каковы преимущества?

Проблема в этом сценарии заключается в том, что содержимое меняется для каждого запроса, что предотвращает кэширование объекта, увеличивает нагрузку на источник, сокращает время отклика и сильно ограничивает коэффициент попаданий в кэш. С приведенной выше реализацией мы должны ожидать улучшения в трех областях:

  1. Представление. Без Lua все запросы отправлялись бы к источнику клиента, а это медленно. Lua ускоряет время отклика конечного пользователя и повышает производительность, когда мы извлекаем объект из кеша.
  2. Исходная загрузка. Lua значительно облегчает это количество запросов к источнику.
  3. Коэффициент кэш-попаданий. Идет от нуля до гораздо большего с Lua.

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

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