You can guess it from the title : this new release is all about HTTP Caching! HTTP Caching is a fundamental part of any web framework and was obviously a required step before Spincast 1.0.0.
Many frameworks only manage a very little part of the HTTP specification
regarding caching. In general, they limit their support to GET
requests by returning a 304 - Not Modified
response
instead of the requested resource if this resource hasn't changed, and they validate this by hashing the generated resource and setting the result
as an ETag
header. This is useful in some cases, but is in fact very limited... HTTP caching is way more sophisticated than this!
At the core of HTTP Caching management using Spincast, there is a new
request context add-on : "httpHeaders()"
. This add-on helps to create very compliant REST
endpoints.
Most of the "freshness" headers are managed : If-Match
, If-None-Match
,
If-Modified-Since
and If-Unmodified-Since
. In the other direction, the add-on helps to send
Cache-Control
, ETag
and Last-Modified
headers. It is also possible to send
"no cache" headers to tell a client that it should never cache the resource, at all. Some of those cache headers
can also be specified on the routes
, directly.
Finally, a Cache Busting
mechanism has been added. By adding a special code to the URL of a resource, you
can easily invalidate the cached versions clients may have of it. Read more about it
here.