В Laravel можно легко добавить заголовки "Last-Modified" и "Expires" с помощью механизма middleware. Middleware в Laravel представляет собой промежуточное звено между входящим запросом и исходящим ответом и может использоваться для выполнения различных операций.
Для добавления заголовка "Last-Modified" мы можем создать middleware, который будет прослушивать каждый запрос и устанавливать соответствующий заголовок в ответе. Вот пример кода для создания такого middleware:
namespace AppHttpMiddleware; use Closure; class AddLastModifiedHeader { public function handle($request, Closure $next) { $response = $next($request); $lastModified = // ваш код для определения даты последнего изменения ресурса $response->header('Last-Modified', $lastModified); return $response; } }
Здесь мы определяем класс AddLastModifiedHeader
, который реализует метод handle
. В этом методе мы получаем ответ от следующего middleware или контроллера, а затем устанавливаем заголовок "Last-Modified", используя дату последнего изменения ресурса.
Чтобы применить этот middleware ко всем запросам, вам необходимо его зарегистрировать в файле AppHttpKernel.php
, в массиве $middleware
:
protected $middleware = [ // ... AppHttpMiddlewareAddLastModifiedHeader::class, ];
Теперь заголовок "Last-Modified" будет автоматически добавляться ко всем исходящим ответам.
Что касается заголовка "Expires", он обозначает дату и время, когда ресурс становится недействительным. Для установки этого заголовка мы можем воспользоваться middleware вместе с функцией header
в Laravel. Вот пример кода для создания middleware, который добавляет заголовок "Expires" с соответствующей датой:
namespace AppHttpMiddleware; use Closure; class AddExpiresHeader { public function handle($request, Closure $next) { $response = $next($request); $expires = // ваш код для определения даты истечения ресурса $response->header('Expires', $expires); return $response; } }
Как и в предыдущем примере, регистрируем middleware в файле AppHttpKernel.php
:
protected $middleware = [ // ... AppHttpMiddlewareAddExpiresHeader::class, ];
Теперь заголовок "Expires" будет автоматически добавляться ко всем исходящим ответам.
Обратите внимание, что код для определения даты последнего изменения ресурса и даты истечения ресурса должен быть реализован вами, исходя из ваших потребностей и логики приложения.