Лайфхаки

Маленькие, полезные хитрости

Что такое проксирование и кэширование: основы и применение

13.05.2025 в 04:51

Что такое проксирование и кэширование: основы и применение

Проект прокси-сервера Squid (www.squid-cache.org) в свое время отделился от ныне платного проекта Harvest и разрабатывается несколькими энтузиастами во главе с Duane Wessels из Национальной лаборатории по исследованию сетей (National Laboratory for Applied Network Research). Сервер Squid — это высокопроизводительный кэширующий прокси, ориентированный прежде всего на работу с пользователями, которые занимаются активным серфингом в Интернете. Squid поддерживает работу пользователей с такими протоколами, как FTP, HTTP, HTTPS и GOPHER. В отличие от других подобных проектов, прокси-сервер Squid обладает интересной особенностью — выполнение запросов пользователей реализовано в нем как один большой неблокируемый процесс ввода-вывода, что обеспечивает более высокую производительность сервера в целом. Поскольку сервер Squid является кэширующим прокси, он поддерживает широкие возможности по построению иерархической структуры связи кэш-серверов на основе протоколов ICP/UDP (Internet Cache Protocol), HTCP/TCP и multicast. Такая система позволяет получить высокую производительность и оптимизировать пропускную способность канала в Интернет. Кэш сервера разделяется на виртуальный, который находится в оперативной памяти компьютера, и обычный, который хранится на жестком диске. Наиболее часто используемые объекты хранятся в оперативной памяти, что ускоряет процесс их отсылки клиентам. Также в виртуальной памяти хранится б о льшая часть запросов DNS. Squid в полной мере поддерживает SSL (HTTPS), что обеспечивает конфиденциальность передаваемой пользователями информации и приватность их работы в Интернете. Также нельзя обойти вниманием широкие возможности по аутентификации пользователей на основе различных методик: NCSA, LDAP, MSNT, NTLM, PAM, SMB, SASL и др. Все дополнительные программы для аутентификации пользователей идут в комплекте с основным ядром программы. Как видно из перечисленных методик, Squid поддерживает авторизацию пользователей средствами сервисов не только на Linux-, но и на Windows-платформе (MSNT и NTLMv1). В будущем ожидается поддержка сервиса NTLMv2, который используется в операционных системах Windows 2003 Server и Vista.

Связанные вопросы и ответы:

Вопрос 1: Что такое проксирование и кэширование

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

Вопрос 2: Как работает проксирование

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

Вопрос 3: Как работает кэширование

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

Вопрос 4: Какие преимущества и недостатки проксирования

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

Вопрос 5: Какие преимущества и недостатки кэширования

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

Вопрос 6: Где применяется проксирование

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

Вопрос 7: Где применяется кэширование

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

Вопрос 8: В чем разница между проксированием и кэшированием

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

Вопрос 9: Могут ли проксирование и кэширование использоваться вместе

Да, проксирование и кэширование часто используются вместе для повышения эффективности работы систем. Например, прокси-сервер может кэшировать часто запрашиваемые ресурсы, чтобы уменьшить нагрузку на исходный сервер и ускорить доступ к данным. Это особенно полезно в распределенных системах, где данные запрашиваются многими пользователями. Используя прокси-сервер с кэшированием, можно значительно повысить производительность и надежность системы. Однако важно правильно настраивать и управлять этими технологиями, чтобы избежать проблем с актуальностью данных и безопасностью.

Что такое проксирование

Представьте, что вы планируете проверить своё здоровье в многопрофильном медицинском центре, который регулярно посещаете. Но по какой‑то причине вы не желаете напрямую взаимодействовать с персоналом медучреждения. У вас есть личный помощник, который от вашего имени решает подобного рода задачи. По этой же причине медицинский персонал никогда не взаимодействует с вами напрямую, только с вашим помощником. В этом сценарии вас можно ассоциировать с ноутбуком, через который ищет информацию в интернете, а ваш личный помощник — это прокси‑сервер, который действует как посредник между вашей частной сетью, к которой подключён ноутбук, и общедоступным интернетом, куда отправляются ваши запросы. Прокси‑сервер защищает ноутбук, фильтруя трафик и блокируя вредоносные веб‑сайты и скрипты, прежде чем ответ будет перенаправлен обратно.

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

Поэтому для защиты внутренней сети вы можете настроить весь интернет‑трафик всех компьютеров сотрудников так, что он будет проходить через прокси‑сервер, который станет «привратником» внутренней сети вашей организации. Вы можете внести в «чёрный список» любые веб‑сайты, которые должны быть недоступными для посещения сотрудниками компании. Он действует как щит между вашей частной сетью и общедоступным интернетом. А также он может регистрировать пользовательскую активность, чтобы показать, какие сайты посещают сотрудники.

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

Такой вид прокси называется прямым прокси‑сервером (forward proxy).

Что такое кэширование

Кэширование — это возможность хранить копии часто используемых данных в нескольких местах по пути запроса-ответа.

Кэширование хранит и извлекает данные из программного или аппаратного компонента. Когда клиент (например, браузер) отправляет запрос REST API, он может сохранить ответ API в кеше. В следующий раз, когда клиент инициирует этот запрос, он получит более быстрый ответ, поскольку серверу не придется обрабатывать его заново. Кэширование жизненно важно для каждого API. Это экономит накладные расходы и сокращает время отклика.

Зачем использовать кэширование?

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

    Это снижает нагрузку на сервер: кэширование действует как промежуточное программное обеспечение между клиентом и сервером. Он перехватывает запрос от клиента и обрабатывает данные запроса. Если данные ответа находятся в кеше, клиент может получить данные без участия сервера.

    Это повышает производительность вашего приложения : поскольку сервер освобождается от повторной обработки кэшированных данных, вместо этого он может выполнять другие операции.

Кеширование в REST

Кэшируемость — одно из архитектурных ограничений REST.

    GET- запросы должны кэшироваться по умолчанию — до тех пор, пока не возникнет особое условие. Обычно браузеры рассматривают все запросы GET как кэшируемые.

    POST- запросы не кэшируются по умолчанию, но их можно сделать кэшируемыми, если к ответу добавленExpiresзаголовок илиCache-Controlзаголовок с директивой, явно разрешающей кэширование.

Как управлять кешем

Ниже приведены основные заголовки HTTP-ответов, которые мы можем использовать для управления поведением кэширования:

Expires

HTTP- заголовокExpiresуказывает до какого времени можно хранить ресурс в кэш. По истечении этого времени кэшированное представление считается устаревшим и должно быть повторно проверено на исходном сервере.

Last-Modified

ЗаголовокLast-Modifiedуказывает, когда связанный ресурс был последний раз изменен. Этот заголовок используется в качестве средства проверки, чтобы определить, совпадает ли полученный ответ сервера с ранее сохраненным ресурсом в кэше клиента.

ETag

ЗаголовокETag— это токен , который генерируется сервером на основе содержимого ресурса и позволяет однозначно идентифицировать его состояние. Если ресурс по данному URL-адресу изменяется, сервер создет новый токенEtag. Сравенение старого и нового токена от сервера поможет определить, являются ли два ресурса одинаковыми и нужно ли обновлять кэш на клиенте.

Cache-Control

Значение заголовкаCache-Controlсодержит одну или несколько директив, разделенных запятыми . Эти директивы определяют, кэшируется ли ответ, и если да, то кем и как долго, например,max-ageилиs-maxageдирективы.

Например, если вы установите значениеCache-Controlв заголовке ответа API наmax-age=60, браузер будет хранить кэш в течение шестидесяти секунд.

Инвалидация кеша

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

Инвалидация по TTL

При сохранении данных в кэш для них устанавливается время жизни (TTL - time to live) и данные будут автоматически удалены через это время.

Основная проблема заключается в подборе TTL. Если TTL слишком короткий, то запись может “протухнуть” и стать недействительной раньше, чем обновление было бы необходимо, что приведет к отправке повторного запроса в источник данных. Если TTL слишком длинный, то запись может содержать устаревшие данные, что может привести к ошибкам или неправильной работе приложения. Обычно ответ на этот вопрос подбирается эмпирическим путем.

Инвалидация по событию

При таком подходе данные инвалидируют при наступлении некого события – обычно это обновление данных в источнике. В качестве события для инвалидации данных может выступать время последней модификации данных. Такой способ используется в HTTP.

В чем разница между проксированием и кэшированием

Выше основное внимание мы уделяли вопросам архитектуры и безопасности, но многих пользователей proxy-серверы интересуют по одной причине, и эта причина — кэширование. Хотя теоретически оно не является для них обязательным, кэширование тесно связано с proxy-серверами Web с того момента, когда они были впервые описаны на Международной конференции по World Wide Web (Женева, апрель 1994 г.).

Базовая функция кэширования proxy-сервера работает во многом аналогично встроенной в браузеры Web за тем отличием, что содержимое кэша proxy-сервера доступно для множества пользователей. Всякий раз, когда какой-либо пользователь локальной сети запрашивает страницу из Internet, она сохраняется локально, что значительно ускоряет скорость доступа (см. Рисунок 1). Например, как заявляет Novell, если ее BorderManager FastCache сконфигурирован на работу с оперативной памятью, то он способен обслуживать свыше 5000 обращений в минуту.

В чем разница между проксированием и кэшированием. КЭШИРОВАНИЕ В ЛУЧШЕМ ВИДЕРисунок 1. Proxy-серверы предлагают множество функций, но наиболее известной из них является кэширование. Кэширование позволяет оптимизировать функционирование соединения с Internet посредством преобразования случайных нерегулярных запросов HTTP в эффективный поток на базе правил.
В чем разница между проксированием и кэшированием. КЭШИРОВАНИЕ В ЛУЧШЕМ ВИДЕРисунок 2. Протокол кэширования Internet (Internet Cache Protocol, ICP) связывает между собой кэш-серверы в равноправно-подчиненную иерархию. Локальный кэш может запрашивать отсутствующие у него объекты как у равноправных, так и у вышестоящих кэшей.

Некоторые proxy-серверы предлагают упреждающее кэширование, т. е. они загружают в кэш изображения и другие содержащиеся на странице Web объекты до того, как браузер их запросит. Кэш может заполняться заранее с помощью механизма, известного как «множитель последних изменений». При этом proxy-сервер анализирует даты создания часто запрашиваемых страниц, прогнозирует вероятный срок изменения и запрашивает их по его наступлении. И конечно, proxy-серверы позволяют администраторам проводить плановое пакетное копирование страниц Web в любое время дня и ночи, когда объем сетевого трафика невелик.

Некоторые proxy-серверы имеют такую дополнительную функцию, как обратное кэширование. При этом кэш-серверы сохраняют не только страницы из Internet для локальных пользователей, но и локальные страницы для пользователей в Internet.

Для чего используется проксирование

Это процесс хранения веб-ресурсов — HTML-страниц, CSS-файлов, скриптов JavaScript и изображений — на устройстве пользователя. Как правило, в его веб-браузере. Цель кэширования на стороне клиента — ускорить загрузку веб-страниц за счёт снижения необходимости получать ресурсы с веб-сервера при каждом посещении страницы.

Когда пользователь посещает веб-сайт, его браузер делает запрос на сервер, чтобы получить нужные ресурсы. Сервер отвечает HTTP-заголовками, которые указывают браузеру, как работать с кэшированием. К таким заголовкам относятся Cache-Control, Expires, ETag (Entity Tag) и Last-Modified.

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

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

Как кэширование помогает улучшить производительность веб-сайтов

Вперед прокси

Наиболее распространенный тип прокси, прямой прокси -сервер между клиентом (браузер) и Интернетом.Когда клиент запрашивает доступ к веб -сайту, Proxy Proxy перехватывает запрос и, действуя как брандмауэр, скрывает IP -адрес клиента перед тем, как отправлять его на сервер назначения от имени клиента.

Передовые прокси -серверы обычно используются во внутренних сетях для облегчения доступа в Интернет путем проверки и фильтрации запросов клиентов на основе настройки конфигурации прокси -сервера, таких как элементы управления доступа и политраторные политики.

Обратный прокси

В то время как форвардный прокси работает для защиты клиентов от Веб -серверы , обратный прокси работает для защиты веб -серверов от клиентов.Он расположен перед веб -серверами и перехватывает запросы от клиентов, пересылав их на соответствующий бэкэнд -сервер, защищая серверы от прямого доступа к клиенту.

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

Прозрачный прокси

Прозрачный прокси -сервер находится между клиентом и Интернетом, перехватывая запросы клиентов аналогично прямому прокси.Однако, в отличие от форвардных прокси, прозрачные прокси не скрывают IP -адрес клиента или тот факт, что они выступают в качестве прокси -сервера.

Прозрачные прокси часто используются для смягчения контента и/или мониторинга пользователей в сети без их знаний, практика иногда называется «принудительным прокси».

Какие типы прокси-серверов существуют

Обратный прокси-сервер ( англ.   reverse proxy ) — тип прокси-сервера , который ретранслирует запросы клиентов из внешней сети на один или несколько серверов , логически расположенных во внутренней сети. При этом для клиента это выглядит так, будто запрашиваемые ресурсы находятся непосредственно на прокси-сервере.В отличие от классического прокси, который перенаправляет запросы клиентов к любым серверам в Интернете и возвращает им результат, обратный прокси непосредственно взаимодействует лишь с ассоциированными с ним серверами и возвращает ответ только от них.

    , страницы, генерируемые динамически, могут быть отданы обратному прокси-серверу для освобождения ресурсов сервера-генератора от затрат на их отдачу медлительным клиентам.

      Что такое обратный прокси-сервер и для чего он используется

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

      Преимущества применения кэширования:

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

        Снижение нагрузки на мастер-систему. Это полезное следствие первого пункта. Меньше запросов на сервер — меньше обращений к базе данных, меньше трафика в целом. Это особенно полезно, если у нас не самое производительное железо или имеются строгие нефункциональные требования к производительности системы.

        Возможность дообогащения и конвертации данных. Это очень полезное свойство, которое зачастую помогает обойти некоторые технические ограничения текущей реализации. Об этом подробнее расскажу далее в ходе разбора кейса.

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

      Во-первых, у нас появляются широкие возможности для работы офлайн или при медленном интернете. Для России, где быстрый мобильный интернет есть только в крупных городах, это очень актуально.

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

      И наконец, можно реализовать мгновенное получение данных в самых частых сценариях использования. Храним данные на устройстве, поэтому не ходим на сервер и радуем пользователей скоростью отклика.

      Недостатки у технологии тоже есть:

        Устаревание данных в кэше. Это фундаментальный недостаток. Неактуальные данные могут натворить много бед, поэтому всё подряд кэшировать не получится, а аналитику будет особенно важно, исходя из бизнес-требований, чётко определить, что кэшируем, а что — нет.

        Усложнение логики обработки запросов. Аналитику придётся описать более подробные сценарии использования, разработчику придётся написать больше строчек кода, а потом всё это надо тестировать и внедрять. Однако, если мы хотим сделать действительно классный продукт, без этого никак.

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

      Для простоты понимания я бы выделил несколько вариантов классификации кэша.

      Во-первых, по месту хранения, чтобы понять, :

        на клиенте (локальная БД, оперативная память, встроенные механизмы)

        на сервере (Redis)

        комбинированный (сервер+клиент)

      По продолжительности хранения. Для упрощения восприятия назову более «человеческие» термины:

        “Короткий” актуален в рамках экрана или сессии пользователя.

      Какие преимущества использования кэширования

      Хотя кеширование — это общая концепция, есть несколько типов, которые выделяются среди остальных. Они представляют собой ключевые концепции для любых разработчиков, заинтересованных в понимании наиболее распространенных подходов к кешированию, и их нельзя пропустить. Рассмотрим их все.

      Кеширование в памяти

      При таком подходе кэшированные данные хранятся непосредственно в оперативной памяти, которая, предположительно, работает быстрее, чем типичная система хранения, в которой расположены исходные данные. Наиболее распространенная реализация этого типа кэширования основана на базах данных типа «ключ-значение» . Их можно рассматривать как наборы пар «ключ-значение». Ключ представлен уникальным идентификатором, а значение — кешированными данными.

      По сути, это значит, что каждая часть данных идентифицируется уникальным значением. Указав это значение, база данных «ключ-значение» вернет связанные данные. Такое решение быстрое, эффективное и простое для понимания. Вот почему разработчики, пытаясь создать слой кеширования, обычно предпочитают такой подход.

      Кеширование базы данных

      Каждая база данных обычно имеет определенный уровень кеширования. В частности, внутренний кеш обычно используется, чтобы избежать чрезмерных запросов к базе данных. Кешируя результат последних выполненных запросов, база данных может немедленно предоставить ранее кешированные данные. Таким образом, в течение периода времени, когда желаемые кешированные данные действительны, база данных может избегать выполнения запросов. Хотя каждая база данных реализует это по-разному, наиболее популярный подход основан на использовании хеш-таблицы, в которой хранятся пары ключ-значение. Как и раньше, ключ используется для поиска значения. Обратите внимание, что такой тип кеша обычно предоставляется по умолчанию технологиями ORM (Object Relational Mapping).

      Веб-кеширование

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

      Кеширование веб-клиента

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

      Кеширование веб-сервера

      Это механизм, предназначенный для хранения ресурсов на стороне сервера для повторного использования. В частности, такой подход полезен при работе с динамически генерируемым контентом, для создания которого требуется время. И наоборот, он бесполезен в случае статического содержимого. Кеширование веб-сервера позволяет избежать перегрузки серверов, сокращая объем работы, которую необходимо выполнить, и улучшает скорость доставки страниц.

      Кеширование CDN

      CDN расшифровывается как Content Delivery Network , и он предназначен для кеширования контента, такого как веб-страницы, таблицы стилей, сценарии и мультимедийные файлы, на прокси-серверах. Его можно рассматривать как систему шлюзов между пользователем и исходным сервером, хранящую его ресурсы. Когда пользователю требуется ресурс, прокси-сервер перехватывает его и проверяет, есть ли у него копия. Если есть, ресурс немедленно доставляется пользователю; в противном случае запрос пересылается на исходный сервер. Прокси-серверы размещены в огромном количестве мест по всему миру, а запросы пользователей динамически направляются к ближайшему из них. Таким образом, ожидается, что они будут ближе к конечным пользователям, чем исходные серверы, что подразумевает сокращение задержки в сети. Кроме того, это также снижает количество запросов к исходным серверам.