mirror of
https://github.com/adidas/api-guidelines.git
synced 2025-10-25 15:19:19 +00:00
Updates protocol/caching.md
Auto commit by GitBook Editor
This commit is contained in:
@@ -1,16 +1,9 @@
|
||||
# Caching
|
||||
Include an ETag header in all responses, identifying the specific version of the returned resource. This allows users to cache resources and use requests with this value in the If-None-Match header to determine if the cache should be updated.
|
||||
Every API implementation response to a [cacheable request]((https://github.com/for-GET/know-your-http-well/blob/master/methods.md#cacheable) SHOULD include the [`ETag` HTTP Header](https://tools.ietf.org/html/rfc7232#section-2.3) to identify the specific version of the returned resource.
|
||||
|
||||
Every API client SHOULD use [`If-None-Match` HTTP header](https://tools.ietf.org/html/rfc7232#section-3.2) whenever it's performing a cacheable request. The value of `If-None-Match` should be the value of the `ETag` header stored from a previous request.
|
||||
|
||||
ETag
|
||||
#### How ETag works
|
||||
ETags are unique identifiers for a specific version of a resource found by a URL. They are used for cache validation, to quickly check for modifications.
|
||||
This is how it works:
|
||||
A client requests a resource from the serve at a specific URI. The server responds with the specific ETag value in the HTTP ETag header field. This and the resource will be stored locally by the client.
|
||||
subsequent requests from the client are done with the If-None-Match header, which now contains the ETag value from the previous request
|
||||
the server now compares the values. If they are the same, it responds with HTTP Status Code 304. If not, the resource is sent.
|
||||
Further reading
|
||||
Find below a list of great articles on the topic Caching
|
||||
https://www.mnot.net/cache_docs/
|
||||
http://restcookbook.com/Basics/caching/
|
||||
http://odino.org/rest-better-http-cache/
|
||||
https://www.subbu.org/blog/2005/01/http-Caching
|
||||
|
||||
A client requests a resource from the serve at a specific URI. The server responds with the specific ETag value in the HTTP ETag header field. This and the resource will be stored locally by the client. Subsequent requests from the client are done with the If-None-Match header, which now contains the ETag value from the previous request. The server now compares the values. If they are the same, it responds with HTTP Status Code 304. If not, the resource is sent.
|
||||
|
||||
Reference in New Issue
Block a user