Dell DX6004S DX Object Storage Application Guide - Page 73

If-None-Match, 3.4. If-Range

Page 73 highlights

Examples of If-Match request headers: If-Match: "508941dc9b52243f64d964b058354b76" If-Match: "508941dc9b52243f64d964b058354b76", "fe3233d3c6881d5e8b654117b829d26c" If-Match: W/"508941dc9b52243f64d964b058354b76" If-Match: * If any of the entity tags match the primary UUID of the object that would have been returned in the response to a similar GET request (without the If-Match header) on that resource, or if "*" is given, then DX Storage will perform the requested method as if the If-Match header field did not exist. If the request would, without the If-Match header field, result in anything other than a 2xx status, then the If-Match header will be ignored. If none of the entity tags match, DX Storage will not perform the requested method, and will instead return a 412 Precondition Failed response with a current ETag header. This behavior is most useful when the client wants to prevent an updating method, such as PUT, from modifying an anchor stream that has changed since the client last retrieved it. If DX Storage receives a conditional request that includes both a Last-Modified date (e.g., in an IfModified-Since or If-Unmodified-Since header field) and one or more entity tags (e.g., in an If-Match header field) as cache validators, DX Storage will NOT return a response status of 412 Precondition failed unless doing so is consistent with all of the conditional header fields in the request 18.3.3. If-None-Match A DX Storage client or proxy can include this header with any request method to make it conditional. The purpose of this feature is to allow efficient updates of cached information with a minimum amount of transaction overhead. 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. Examples of If-None-Match request headers: If-None-Match: "508941dc9b52243f64d964b058354b76" If-None-Match: "508941dc9b52243f64d964b058354b76", "fe3233d3c6881d5e8b654117b829d26c" If-None-Match: W/"508941dc9b52243f64d964b058354b76" If-None-Match: */ If any of the entity tags match the primary UUID of the object that would have been returned in the response to a similar GET request (without the If-None-Match header) on that object, or if "*" is given and the object does exist, then DX Storage will not perform the requested method. Instead, if the request method was GET or HEAD, DX Storage will respond with a 304 Not Modified response, including a current ETag header for the object. For all other request methods, DX Storage will respond with a response of 412 Precondition failed. If none of the previously recorded and supplied entity tags match, then the object has been modified so the requested method will proceed as if the If-None-Match header field did not exist. If DX Storage receives a conditional request that includes both a Last-Modified date (e.g., in an IfModified-Since or If-Unmodified-Since header field) and one or more entity tags (e.g., in an If-NoneMatch header field) as cache validators, DX Storage will NOT return a response status of 304 Not Modified or 412 Precondition failed unless doing so is consistent with all of the conditional header fields in the request. 18.3.4. If-Range A DX Storage client or proxy can include this header with a GET request method to obtain an additional specified portion of the object if it has not changed or the entire object if it has changed. Copyright © 2010 Caringo, Inc. All rights reserved 68 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
68
Version 5.0
December 2010
Examples of If-Match request headers:
If-Match: "508941dc9b52243f64d964b058354b76"
If-Match: "508941dc9b52243f64d964b058354b76", "fe3233d3c6881d5e8b654117b829d26c"
If-Match: W/"508941dc9b52243f64d964b058354b76"
If-Match: *
If any of the entity tags match the primary UUID of the object that would have been returned in the
response to a similar GET request (without the If-Match header) on that resource, or if "*" is given,
then DX Storage will perform the requested method as if the If-Match header field did not exist. If the
request would, without the If-Match header field, result in anything other than a 2xx status, then the
If-Match header will be ignored.
If none of the entity tags match, DX Storage will not perform the requested method, and will instead
return a 412 Precondition Failed response with a current ETag header. This behavior is most useful
when the client wants to prevent an updating method, such as PUT, from modifying an anchor
stream that has changed since the client last retrieved it.
If DX Storage receives a conditional request that includes both a Last-Modified date (e.g., in an If-
Modified-Since or If-Unmodified-Since header field) and one or more entity tags (e.g., in an If-Match
header field) as cache validators, DX Storage will NOT return a response status of 412 Precondition
failed unless doing so is consistent with all of the conditional header fields in the request
18.3.3. If-None-Match
A DX Storage client or proxy can include this header with any request method to make it conditional.
The purpose of this feature is to allow efficient updates of cached information with a minimum
amount of transaction overhead. 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.
Examples of If-None-Match request headers:
If-None-Match: "508941dc9b52243f64d964b058354b76"
If-None-Match: "508941dc9b52243f64d964b058354b76", "fe3233d3c6881d5e8b654117b829d26c"
If-None-Match: W/"508941dc9b52243f64d964b058354b76"
If-None-Match: */
If any of the entity tags match the primary UUID of the object that would have been returned in the
response to a similar GET request (without the If-None-Match header) on that object, or if "*" is
given and the object does exist, then DX Storage will not perform the requested method. Instead, if
the request method was GET or HEAD, DX Storage will respond with a 304 Not Modified response,
including a current ETag header for the object. For all other request methods, DX Storage will
respond with a response of 412 Precondition failed. If none of the previously recorded and supplied
entity tags match, then the object has been modified so the requested method will proceed as if the
If-None-Match header field did not exist.
If DX Storage receives a conditional request that includes both a Last-Modified date (e.g., in an If-
Modified-Since or If-Unmodified-Since header field) and one or more entity tags (e.g., in an If-None-
Match header field) as cache validators, DX Storage will NOT return a response status of 304 Not
Modified or 412 Precondition failed unless doing so is consistent with all of the conditional header
fields in the request.
18.3.4. If-Range
A DX Storage client or proxy can include this header with a GET request method to obtain an
additional specified portion of the object if it has not changed or the entire object if it has changed.