Laravel ETag and Conditionals Package
Published on by Paul Redmond
Laravel ETag and Conditionals is a package that provides a set of middleware for ETags and HTTP conditional requests. The goal of this package is to provide tools for better client-side caching for Laravel apps.
Using the techniques supported by this middleware, browsers can handle the caching provided automatically based on ETag
headers in HTTP responses.
ETag Support
At the heart of this package, the setEtag
middleware will set the ETag header on responses. The value of this header is the MD5 hash of the content. This package also supports HEAD requests (see the readme for details).
HTTP Conditional Requests
This package's middleware currently supports two HTTP Conditional requests: If-Match
and If-None-Matched
. To give a high-level understanding of how this can be useful to your app, when the If-None-Match
header in the request matches the Etag
, then a 304
response is returned, and the browser will use cached content instead. If the If-None-Match
header doesn't match the newly created ETag
value, then a 200
response is returned. This applies to GET
and HEAD
requests only.
Learn More
You can learn more about this package, get full installation instructions, and view the source code on GitHub. It's also advisable to learn more about the ETag header and HTTP conditional requests to understand how the HTTP specification works to support browser caching.
The author of the package also wrote an article that explains how to write the middleware in this package: Caching your Laravel API with ETag and Conditional Requests.
This package was submitted to our Laravel News Links section. Links is a place the community can post packages and tutorials around the Laravel ecosystem. Follow along on Twitter @LaravelLinks