Dell DX6004S DX Object Storage Application Guide - Page 72

Using HTTP/1.1 Caching Headers

Page 72 highlights

Since request header field is used with a method to make it conditional. If the requested object has not been modified since the time specified in this field, DX Storage will perform the requested operation as if the If-Unmodified-Since header were not present. If the requested object has been modified since the specified time, DX Storage will not perform the requested operation, and instead return a 412 Precondition failed. If the specified date is invalid, the header is ignored. 18.2.4. Expires DX Storage returns an Expires header if it is persisted with your content. DX Storage does not generate an Expires header. The Expires header field gives the date/time after which the response is considered stale. A stale cache entry may not normally be returned by a cache (either a proxy cache or a user agent cache) unless it is first validated with DX Storage (or with an intermediate cache that has a fresh copy of the object). Since DX Storage has no information about when an anchor stream might be updated, and little information about when an object might be deleted, DX Storage does not generate an Expires header for any object. However, Expires will be added to the list of persisted headers so that applications can supply a hint to caching proxies and clients as to when an object might become stale. 18.3. Using HTTP/1.1 Caching Headers The newer HTTP/1.1 cache coherency mechanism does not use dates or time stamps and thus avoids the granularity and synchronization problems of the HTTP/1.0 headers. Instead, it uses "entity tags" or ETags which can only be compared for exact equality. In DX Storage, ETag values are opaque, variable length, case-sensitive strings that must be enclosed in quotes. Any characters preceding or following the quoted string will be ignored. If the header value has no quoted string, the entire header will be ignored. Note Because DX Storage is merely storing data rather than dynamically generating it, the fine-grained control allowed in the Cache-Control header is not implemented at this time. However, if supplied by an application, the Cache-Control header will be stored by DX Storage and then returned as-is by the server. 18.3.1. ETag DX Storage will return the ETag header for all POST, PUT, GET, and HEAD operations. DX Storage will use only "strong" ETags as defined in RFC2616, which can only be compared for exact (casesensitive) equality. Example ETag response header: ETag: "508941dc9b52243f64d964b058354b76" The ETag of an ordinary object never changes during the entire lifecycle of the object, whereas anchor stream ETags will change each time the object is mutated by a PUT. 18.3.2. If-Match A DX Storage client or proxy can include this header with any request method. The value of the header is either a single quoted string (possibly with some ignored flags outside the quotation marks), a comma separated list of quoted strings, or a single asterisk, anything after which will be ignored. Copyright © 2010 Caringo, Inc. All rights reserved 67 Version 5.0 December 2010

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81

Copyright © 2010 Caringo, Inc.
All rights reserved
67
Version 5.0
December 2010
Since request header field is used with a method to make it conditional. If the requested object
has not been modified since the time specified in this field, DX Storage will perform the requested
operation as if the If-Unmodified-Since header were not present. If the requested object has been
modified since the specified time, DX Storage will not perform the requested operation, and instead
return a 412 Precondition failed. If the specified date is invalid, the header is ignored.
18.2.4. Expires
DX Storage returns an
Expires header
if it is persisted with your content. DX Storage does not
generate an Expires header.
The Expires header field gives the date/time after which the response is considered stale. A stale
cache entry may not normally be returned by a cache (either a proxy cache or a user agent cache)
unless it is first validated with DX Storage (or with an intermediate cache that has a fresh copy of
the object). Since DX Storage has no information about when an anchor stream might be updated,
and little information about when an object might be deleted, DX Storage does not generate an
Expires header for any object. However, Expires will be added to the list of persisted headers
so that applications can supply a hint to caching proxies and clients as to when an object might
become stale.
18.3. Using HTTP/1.1 Caching Headers
The newer HTTP/1.1 cache coherency mechanism does not use dates or time stamps and thus
avoids the granularity and synchronization problems of the HTTP/1.0 headers. Instead, it uses
"entity tags" or ETags which can only be compared for exact equality. In DX Storage, ETag values
are opaque, variable length, case-sensitive strings that must be enclosed in quotes. Any characters
preceding or following the quoted string will be ignored. If the header value has no quoted string, the
entire header will be ignored.
Note
Because DX Storage is merely storing data rather than dynamically generating it, the
fine-grained control allowed in the Cache-Control header is not implemented at this time.
However, if supplied by an application, the Cache-Control header will be stored by DX
Storage and then returned as-is by the server.
18.3.1. ETag
DX Storage will return the ETag header for all POST, PUT, GET, and HEAD operations. DX Storage
will use only "strong" ETags as defined in RFC2616, which can only be compared for exact (case-
sensitive) equality.
Example ETag response header:
ETag: "508941dc9b52243f64d964b058354b76"
The ETag of an ordinary object never changes during the entire lifecycle of the object, whereas
anchor stream ETags will change each time the object is mutated by a PUT.
18.3.2. If-Match
A DX Storage client or proxy can include this header with any request method. The value of the
header is either a single quoted string (possibly with some ignored flags outside the quotation
marks), a comma separated list of quoted strings, or a single asterisk, anything after which will be
ignored.