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

Поделиться
HTML-код
  • Опубликовано: 22 май 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
  • НаукаНаука

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

  • @textreanimator
    @textreanimator 17 дней назад +5

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

  • @user-ol5ro8xj3p
    @user-ol5ro8xj3p 15 дней назад +1

    спасибо

  • @textreanimator
    @textreanimator 16 дней назад +2

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

    • @AndreySozykin
      @AndreySozykin  16 дней назад +2

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

  • @user-mx2ep1xp8o
    @user-mx2ep1xp8o 17 дней назад +1

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

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

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

    • @user-mx2ep1xp8o
      @user-mx2ep1xp8o 15 дней назад +1

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

  • @ekaterinagalkina7303
    @ekaterinagalkina7303 13 дней назад +1

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

    • @AndreySozykin
      @AndreySozykin  13 дней назад

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

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

    👍

  • @dhoine8464
    @dhoine8464 12 дней назад +1

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

    • @AndreySozykin
      @AndreySozykin  10 дней назад

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

  • @bolovy6093
    @bolovy6093 17 дней назад +1

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

    • @AndreySozykin
      @AndreySozykin  17 дней назад

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

    • @bolovy6093
      @bolovy6093 17 дней назад +1

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

  • @unicoxr5tj417
    @unicoxr5tj417 17 дней назад +1

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

    • @AndreySozykin
      @AndreySozykin  17 дней назад +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 17 дней назад +1

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

    • @pavelrid
      @pavelrid 17 дней назад +1

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

    • @AndreySozykin
      @AndreySozykin  17 дней назад

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

    • @user-mx2ep1xp8o
      @user-mx2ep1xp8o 17 дней назад

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

    • @textreanimator
      @textreanimator 16 дней назад

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

    • @pavelrid
      @pavelrid 16 дней назад +2

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