Механизм кэширования файлов: как перехватывать сетевые запросы

#php #file #caching

#php #файл #кэширование

Вопрос:

Мне нужно создать механизм кэширования файлов. Он должен реализовывать заданный интерфейс.

Процесс кэширования по определению:

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

Итак, как перехватывать сетевые запросы к произвольным файлам? Например.

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

Примечание 1: возможен кэш одного файла [с внедрением]

Я знаю, как кэшировать один файл, например. здесь, но обобщить его для любого файла, не вводя код кэша в файл… но прерывая запрос?

Примечание 2, без фреймворка

Задача должна быть dome без использования какой-либо платформы (которая, очевидно, учитывает предварительную обработку входного http-запроса).

Примечание 3: библиотека PhpFastCache (хотя это библиотека Laravel … 🙁 )

Я знаю о PhpFastCache, но я не уверен, можно ли применить его в данном случае, даже как правильно его применить.

Комментарии:

1. Я мало что знаю о кэшировании в вашем сценарии. Но кэш Php, безусловно, не сделает ваш сайт доступным в автономном режиме . Так как даже для того, чтобы кэш Php работал, вам нужно сделать запрос к серверу. Что касается перехвата сетевых запросов и обеспечения доступности сайта в автономном режиме , я думаю, что эта часть находится в Javascript service worker. Есть добыча на developer.mozilla.org/en-US/docs/Web/Progressive_web_apps /… и dev.to/saurabhdaware /…

2. @UmairKhan, содержимое сайта не предназначено для того, чтобы быть доступным в автономном режиме . Пользователь отправляет HTTP-запрос на сервер, и сервер отвечает кэшированными файлами (обычно *.html), а не файлами обработки php.

3. Итак, больше о том, чтобы отвечать на конкретные вопросы программирования, это (ИМХО) слишком широко и больше о том, как выполнять кэширование.

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

5. Кэширование php-файла на сетевом уровне не имеет смысла. Код выполняется на сервере, файл никогда не передается. Кэшироваться может только результат его выполнения, но это больше не кэширование файлов. Для кэширования содержимого на сетевом уровне вы могли бы использовать nginx в качестве кэширующего прокси docs.nginx.com/nginx/admin-guide/content-cache/content-caching .