Кэширование в HTTP | Компьютерные сети 2024 - 12

Поделиться
HTML-код
  • Опубликовано: 20 июн 2024
  • Лекция по встроенной в протокол HTTP поддержке кэша.
    Как поддержать курс:
    - Boosty - boosty.to/asozykin
    - Cloudtips - pay.cloudtips.ru/p/45a4055b
    Заранее спасибо за помощь!
    Сайт курса - www.asozykin.ru/courses/netwo...
    Мой канал в telegram - t.me/a_sozykin
    VK - avsozykin
    00:00 - Кэширование в HTTP
    01:25 - Заголовок Expires в HTTP
    02:36 - Заголовок Cache-Control
    04:13 - Conditional GET
    06:24 - Ответ 304 Not Modified
    07:48 - Прокси сервер в HTTP
    09:39 - Реверсивный прокси сервер
    11:06 - Итоги
    Полезные ссылки:
    - Prevent unnecessary network requests with the HTTP Cache - web.dev/articles/http-cache
    - HTTP-кеширование - developer.mozilla.org/ru/docs...
    - RFC 7234 Hypertext Transfer Protocol (HTTP/1.1): Caching - datatracker.ietf.org/doc/html...
    Плейлист с лекциями курса - • Компьютерные сети 2024
    Рекомендуемые книги:
    1. Д.Ф.Куроуз, К.В.Росс. Компьютерные сети. Нисходящий подход.
    2. Э.Таненбаум, Д.Уэзеролл. Компьютерные сети.
    3. В.Г.Олифер, Н.А.Олифер. Компьютерные сети. Принципы, технологии, протоколы.
    Мой канал с короткими и понятными объяснениями сложных тем в ИТ и компьютерных науках - ‪@AndreySozykin‬
  • НаукаНаука

Комментарии • 26

  • @textreanimator
    @textreanimator Месяц назад +6

    Спасибо. Актуально. Здоровья Вам.

  • @user-ol5ro8xj3p
    @user-ol5ro8xj3p Месяц назад +1

    спасибо

  • @MRaynold
    @MRaynold Месяц назад

    👍

  • @ekaterinagalkina7303
    @ekaterinagalkina7303 Месяц назад +1

    Спасибо! А разделяемый кэш прокси-сервера только в организациях используют, или интернет-провайдер тоже использует такое?

    • @AndreySozykin
      @AndreySozykin  Месяц назад

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

  • @user-mx2ep1xp8o
    @user-mx2ep1xp8o Месяц назад +1

    Андрей, спасибо за информацию и труд. Подскажите, пожалуйста, какой-нибудь сайт, на примере которого можно посмотреть ответы и запросы с заголовками из Вашего видео в консоли F12.

    • @AndreySozykin
      @AndreySozykin  Месяц назад

      Можно смотреть на том же сайте, networkscourse.ru.
      Также можно использовать любой другой сайт, даже тот, который работает по HTTPS. Браузер расшифрует сообщения и в консоли разработчика в закладке "Network" они будут показываться в открытом виде.

    • @user-mx2ep1xp8o
      @user-mx2ep1xp8o Месяц назад +1

      @@AndreySozykin Спасибо большое.

  • @chronewhite4197
    @chronewhite4197 15 дней назад

    То есть схема такая:
    если срок Expires истёк
    или заголовка Expires нет & заголовка Cache-Control тоже нет
    то отправляется Conditional GET
    А то в видео не понятен этот момент)

  • @textreanimator
    @textreanimator Месяц назад +2

    Ещё такой вопрос. Например плагины кеширования для вордпресс позволяют отдельно настраивать кеширование для базы данных (sql запросы), php кода, и т.д. Чтобы все это не запускать каждый раз по новому. Это тоже входит в кеш, о котором лекция?

    • @AndreySozykin
      @AndreySozykin  Месяц назад +2

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

  • @bolovy6093
    @bolovy6093 Месяц назад +1

    Добрый день, для CCNA экзамена лучше подойдет ваш старый курс или вот этот? Или оба)

    • @AndreySozykin
      @AndreySozykin  Месяц назад

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

    • @bolovy6093
      @bolovy6093 Месяц назад +1

      @@AndreySozykin Спасибо большое за информацию и годный контент 🔥

  • @dhoine8464
    @dhoine8464 Месяц назад +1

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

    • @AndreySozykin
      @AndreySozykin  Месяц назад

      Реализация разделяемого кэша бывает разной. На noSQL тоже можно сделать.
      Я для прокси сервера использую squid

  • @unicoxr5tj417
    @unicoxr5tj417 Месяц назад +1

    202 Accepted - запрос был принят на обработку, но она не завершена. Клиенту не обязательно дожидаться окончательной передачи сообщения, так как может быть начат очень долгий процесс. Андрей, можете ли рассказать о ней подробней? Все-таки нормален ли такой ответ? Или нужно ждать после 202 еще и 200?

    • @AndreySozykin
      @AndreySozykin  Месяц назад +1

      Сразу скажу, что на практике с таким ответом я не встречался. Что написано в RFC datatracker.ietf.org/doc/html/rfc7231#section-6.3.3:
      - The 202 (Accepted) status code indicates that the request has been accepted for processing, but the processing has not been completed. То есть запрос принят на обработку, но обработка не завершена.
      - There is no facility in HTTP for re-sending a status code from an asynchronous operation. Если получили ответ 202, то дополнительный ответ со статусом 200 не придет, т.к. в HTTP нет такой возможности.
      - The 202 response is intentionally noncommittal. Ответ 202 специально сделан noncommittal (не знаю, как перевести точно, без обязательств). То есть, запрос может завершиться, а может и не завершиться.
      - The representation sent with this response ought to describe the request's current status and point to
      (or embed) a status monitor that can provide the user with an estimate of when the request will be fulfilled. В сообщении со статусом 202 должна быть ссылка на монитор, по которому можно определить статус. Есть ли у вас в ответе какая-то ссылка для получения статуса?

  • @user-mx2ep1xp8o
    @user-mx2ep1xp8o Месяц назад +1

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

    • @pavelrid
      @pavelrid Месяц назад +1

      Это жесткий диск компьютера

    • @AndreySozykin
      @AndreySozykin  Месяц назад

      Браузер сохраняет файлы, загруженные из сети, на диск. Из памяти все данные пропадут после перезагрузки.

    • @user-mx2ep1xp8o
      @user-mx2ep1xp8o Месяц назад

      @@AndreySozykin обычно жёсткий диск медленнее оперативной памяти. Интересно, что не в оперативку заливают. Но, с другой стороны, ресурс оперативки не бесконечен.

    • @textreanimator
      @textreanimator Месяц назад

      ​@@AndreySozykinс кешем браузера понятно. А есть ли кеш например у apache? Я имею в виду, если сайт на Linux машине, и идёт несколько запросов к одной и той же странице, то информация должна браться из каша. Так вот, есть ли этот кеш на стороне сервера? Где он хранится? В оперативно памяти или на диске сервера?

    • @pavelrid
      @pavelrid Месяц назад +2

      @@textreanimator функционал кеширования в apache достигается через модули mod_cache или mod_cache_disk. Так же я думаю есть модули для Nginx и тд. Но если реально проблемы с большим количеством запросов и нужно кеширование то лучше использовать что-то специальное типа Varnish