Share This
Связаться со мной
Крути в низ
Categories
//Кэш: что это такое и как с ним справиться начинающим разработчикам

Кэш: что это такое и как с ним справиться начинающим разработчикам

11.10.2020Category : Python

В компьютерных науках есть только две сложные вещи: инвалидация кэша и присвоение имен ~ Фил Карлтон

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

В этой статье мы поговорим о трех наиболее часто используемых типах кэша:

  • Кэш браузера
  • Кэш сетей доставки контента (CDN — Content Delivery Network)
  • Кэширование в базах данных

Кэш браузера

Каждый раз, когда вы посещаете веб-сайт впервые, браузер локально сохраняет ресурсы веб-страницы (например, html, css, js, изображения и так далее). Это нужно для более быстрой работы и меньшего потребления трафика при следующем посещении.

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

kesh chto eto takoe i kak s nim spravitsja nachinajushhim razrabotchikam 2c3324c - Кэш: что это такое и как с ним справиться начинающим разработчикам

Инвалидация кэша браузера

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

Предположим, вы уже посещали страницу foobar.com/contact-us.html, и она кэширована в вашем браузере. Но создатели сайта недавно обновили свою контактную информацию. Чтобы очистить у вас старый кэш, они могут сделать следующее:

  • Изменить URL страницы с foobar.com/contact-us.html на foobar.com/contact-us2.html (наименее предпочтительный вариант).
  • Изменить параметр версии страницы в строке запроса, который будет выглядеть как foobar.com/contact-us.html?v=2.
  • Поменять значение cache-control в заголовке.
  • Попросить посетителей полностью перезагрузить сайт (Mac: cmd + shift + r, Windows: ctrl + shift + r).

Сети доставки контента (CDN)

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

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

kesh chto eto takoe i kak s nim spravitsja nachinajushhim razrabotchikam e543808 - Кэш: что это такое и как с ним справиться начинающим разработчикам

Данный тип кэширования не только помогает сократить время отклика, но и снижает нагрузку на ваш сервер.

Инвалидация кэша в сетях доставки контента (CDN)

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

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

В предыдущем разделе мы обсудили сети доставки контента (CDN) и тот факт, что они являются посредниками между клиентом и сервером. Аналогичным образом система кэширования базы данных является посредником между сервером и базой данных. Существует множество таких систем кэширования, например redis, memcache и т. д. Их работа объяснена ниже:

kesh chto eto takoe i kak s nim spravitsja nachinajushhim razrabotchikam 376e14f - Кэш: что это такое и как с ним справиться начинающим разработчикам

Инвалидация кэша в базах данных

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

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

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

    Проходите тест по Python и поймите, готовы ли вы идти на курсы
  • 7 views
  • 0 Comment

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Связаться со мной
Close