-
Notifications
You must be signed in to change notification settings - Fork 33
Open
Labels
Description
Howdy, this project is excellent, I'm really happy to see it exists
I've been working on implementing support for Conditional Requests in a project and wanted to ensure I've implemented the precedence of preconditions correctly and I couldn't find any tests in this project for that section of the RFC.
I've had a go at writing out all the combinations possible from the precedence rules and I came up with 146 possible tests, I've included them in the section below.
My first question is, does 146 sound like the correct total? I'd like to ensure I've got all the combinations
My second question is, would including those tests in this project be correct? If so, I can possibly work on converting my tests into the format this project uses
All combinations possible from the precedence of preconditions
- When If-Match, and evaluation of If-Match is false, return 412 or 2XX
- When If-Match, and evaluation of If-Match is true, perform the requested method and respond according to its success or failure.
- When If-Unmodified-Since, and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since, and evaluation of If-Unmodified-Since is true, perform the requested method and respond according to its success or failure.
- When If-Modified-Since and method is GET or HEAD, and evaluation of If-Modified-Since is false, return 304
- When If-Modified-Since and method is not GET or HEAD, do not use If-Modified-Since is false, perform the requested method and respond according to its success or failure.
- When If-None-Match, and evaluation of If-None-Match is false, and method is GET/HEAD, return 304
- When If-None-Match, and evaluation of If-None-Match is false, and method is not GET/HEAD, return 412
- When If-None-Match, and evaluation of If-None-Match is true, perform the requested method and respond according to its success or failure.
- When If-Range, do not use If-Range, perform the requested method and respond according to its success or failure.
- When If-Range and Range, and method is not GET, do not use If-Range, perform the requested method and respond according to its success or failure.
- When If-Range and Range, and method is GET, and evaluation of If-Range is true, return 206
- When If-Range and Range, and method is GET, and evaluation of If-Range is false, return 200
- When If-Match and If-Unmodified-Since, and evaluation of If-Match is false, return 412 or 2XX
- When If-Match and If-Unmodified-Since, and evaluation of If-Match is true, do not use If-Unmodified-Since, perform the requested method and respond according to its success or failure.
- When If-Match and If-Modified-Since and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Modified-Since and evaluation of If-Match is true and method is GET/HEAD, do not use If-Modified-Since, perform the requested method and respond according to its success or failure.
- When If-Match and If-Modified-Since and evaluation of If-Match is true and method is not GET/HEAD, do not use If-Modified-Since, perform the requested method and respond according to its success or failure.
- When If-Match and If-None-Match and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-None-Match and evaluation of If-Match is true and evaluation of If-None-Match is false, and method is GET/HEAD, return 304
- When If-Match and If-None-Match and evaluation of If-Match is true and evaluation of If-None-Match is false, and method is not GET/HEAD, return 412
- When If-Match and If-Range and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Range and method is not GET, do not use If-Range, perform the requested method and respond according to its success or failure.
- When If-Match and If-Range and Range and method is not GET, do not use If-Range
- When If-Match and If-Range and Range and method is GET, and evaluation of If-Range is true, return 206
- When If-Match and If-Range and Range and method is GET, and evaluation of If-Range is false, return 200
- When If-Unmodified-Since and If-Modified-Since and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since and If-Modified-Since and evaluation of If-Unmodified-Since is true and evaluation of If-Modified-Since is false, return 304
- When If-Unmodified-Since and If-Modified-Since and evaluation of If-Unmodified-Since is true and method is not GET/HEAD do not use If-Modified-Since, perform the requested method and respond according to its success or failure.
- When If-Unmodified-Since and If-Modified-Since and evaluation of If-Unmodified-Since is true and method is GET/HEAD and evaluation of If-Modified-Since is false, return 304
- When If-Unmodified-Since and If-Modified-Since and evaluation of If-Unmodified-Since is true and method is GET/HEAD and evaluation of If-Modified-Since is true, perform the requested method and respond according to its success or failure.
- When If-Unmodified-Since and If-None-Match and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since and If-None-Match and evaluation of If-Unmodified-Since is true and evaluation of If-None-Match is false, and method is GET/HEAD, return 304
- When If-Unmodified-Since and If-None-Match and evaluation of If-Unmodified-Since is true and evaluation of If-None-Match is false, and method is not GET/HEAD, return 412
- When If-Unmodified-Since and If-Range and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since and If-Range and method is not GET, do not use If-Range, perform the requested method and respond according to its success or failure.
- When If-Unmodified-Since and If-Range and Range and method is not GET, do not use If-Range, perform the requested method and respond according to its success or failure.
- When If-Unmodified-Since and If-Range and Range and method is GET, and evaluation of If-Range is true, return 206
- When If-Unmodified-Since and If-Range and Range and method is GET, and evaluation of If-Range is false, return 200
- When If-Modified-Since and If-None-Match and evaluation of If-None-Match is false, and method is GET/HEAD, return 304
- When If-Modified-Since and If-None-Match and evaluation of If-None-Match is false, and method is not GET/HEAD, return 412
- When If-Modified-Since and If-None-Match and evaluation of If-None-Match is true, do not use If-Modified-Since, perform the requested method and respond according to its success or failure.
- When If-Modified-Since and If-Range and method is GET or HEAD and evaluation of If-Modified-Since is false, return 304
- When If-Modified-Since and If-Range and method is HEAD and evaluation of If-Modified-Since is true, do not use If-Range
- When If-Modified-Since and If-Range and method is GET and evaluation of If-Modified-Since is true, do not use If-Range
- When If-Modified-Since and If-Range and method is GET and Range and evaluation of If-Range is true, return 206
- When If-Modified-Since and If-Range and method is GET and Range and evaluation of If-Range is false, return 200
- When If-None-Match and If-Range and evaluation of If-None-Match is false, and method is GET/HEAD, return 304
- When If-None-Match and If-Range and evaluation of If-None-Match is false, and method is not GET/HEAD, return 412
- When If-None-Match and If-Range and evaluation of If-None-Match is true, do not use If-Range
- When If-None-Match and If-Range and Range and evaluation of If-None-Match is true and method is not GET, do not use If-Range
- When If-None-Match and If-Range and Range and evaluation of If-None-Match is true and method is GET and evaluation of If-Range is true, return 206
- When If-None-Match and If-Range and Range and evaluation of If-None-Match is true and method is GET and evaluation of If-Range is false, return 200
- When If-Match and If-Unmodified-Since and If-Modified-Since, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-Modified-Since, and evaluation of If-Match is true, do not use If-Unmodified-Since
- When If-Match and If-Unmodified-Since and If-Modified-Since, and evaluation of If-Match is true and method is not GET or HEAD, do not use If-Unmodified-Since and do not use If-Modified-Since
- When If-Match and If-Unmodified-Since and If-Modified-Since, and evaluation of If-Match is true and method is GET or HEAD, do not use If-Unmodified-Since and evaluation of If-Modified-Since is false, return 304
- When If-Match and If-Unmodified-Since and If-Modified-Since, and evaluation of If-Match is true and method is GET or HEAD, do not use If-Unmodified-Since and evaluation of If-Modified-Since is true, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-None-Match, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-None-Match, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-Unmodified-Since and If-None-Match, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is not GET or HEAD, return 412
- When If-Match and If-Unmodified-Since and If-None-Match, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-Range is true, return 206
- When If-Match and If-Unmodified-Since and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-Range is false, return 200
- When If-Match and If-Modified-Since and If-None-Match, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, and evaluation of If-None-Match is false and method is not GET or HEAD, return 412
- When If-Match and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, and evaluation of If-None-Match is true, and method is not GET or HEAD, do not use If-Modified-Since, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, and evaluation of If-None-Match is true, and method is GET or HEAD, and evaluation of If-Modified-Since is false, return 304
- When If-Match and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, and evaluation of If-None-Match is true, and method is GET or HEAD, and evaluation of If-Modified-Since is true, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Modified-Since and If-Range, and evaluation of If-Match is true and method is not GET or HEAD, do not use If-Modified-Since, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-Range, and evaluation of If-Match is true and method is GET or HEAD, and evaluation of If-Modified-Since is false, return 304
- When If-Match and If-Modified-Since and If-Range, and evaluation of If-Match is true and method is GET or HEAD, and evaluation of If-Modified-Since is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-Range and Range, and evaluation of If-Match is true and method is not GET, and evaluation of If-Modified-Since is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-Range and Range, and evaluation of If-Match is true and method is GET, and evaluation of If-Modified-Since is true, and evaluation of If-Range is true, return 206
- When If-Match and If-Modified-Since and If-Range and Range, and evaluation of If-Match is true and method is GET, and evaluation of If-Modified-Since is true, and evaluation of If-Range is false, return 200
- When If-Match and If-None-Match and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-None-Match and If-Range, and evaluation of If-Match is true, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-None-Match and If-Range, and evaluation of If-Match is true, and evaluation of If-None-Match is false and method not is GET or HEAD, return 412
- When If-Match and If-None-Match and If-Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-None-Match and If-Range and Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, and method is not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-None-Match and If-Range and Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, and method is GET, and evaluation of If-Range is true, return 206
- When If-Match and If-None-Match and If-Range and Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, and method is GET, and evaluation of If-Range is false, return 200
- When If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is false and method not is GET or HEAD, return 412
- When If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-Modified-Since and If-Range, and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since and If-Modified-Since and If-Range, and evaluation of If-Unmodified-Since is true, do not use If-Modified-Since, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-Modified-Since and If-Range and Range, and evaluation of If-Unmodified-Since is true, do not use If-Modified-Since, and method not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-Modified-Since and If-Range and Range, and evaluation of If-Unmodified-Since is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is true, return 206
- When If-Unmodified-Since and If-Modified-Since and If-Range and Range, and evaluation of If-Unmodified-Since is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is false, return 200
- When If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is false, return 412 or 2xx
- When If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is false and method not is GET or HEAD, return 412
- When If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-None-Match and If-Range and Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, and method not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-None-Match and If-Range and Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, and method GET, and evaluation of If-Range is true, return 206
- When If-Unmodified-Since and If-None-Match and If-Range and Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, and method GET, and evaluation of If-Range is false, return 200
- When If-Modified-Since and If-None-Match and If-Range, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Modified-Since and If-None-Match and If-Range, and evaluation of If-None-Match is false and method not is GET or HEAD, return 412
- When If-Modified-Since and If-None-Match and If-Range, and evaluation of If-None-Match is true, do not use If-Modified-Since, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is true, return 206
- When If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is false, return 200
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is not GET or HEAD, return 412
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, do not use If-Modified-Since, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and method GET or HEAD, and evaluation of If-Modified-Since is false, return 304
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and method GET or HEAD, and evaluation of If-Modified-Since is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and method not GET or HEAD, do not use If-Modified-Since is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and method not GET, and evaluation of If-Modified-Since is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and method GET, and evaluation of If-Modified-Since is true, and evaluation of If-Range is true, return 206
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and method GET, and evaluation of If-Modified-Since is true, and evaluation of If-Range is false, return 200
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is not GET or HEAD, return 412
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, and method is not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, and method is GET, and evaluation of If-Range is true, return 206
- When If-Match and If-Unmodified-Since and If-None-Match and If-Range and Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, and method is GET, and evaluation of If-Range is false, return 200
- When If-Match and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, and evaluation of If-None-Match is false and method not is GET or HEAD, return 412
- When If-Match and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is true, return 206
- When If-Match and If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-Match is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is false, return 200
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is false, return 412 or 2XX
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is false and method not is GET or HEAD, return 412
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is true, return 206
- When If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range and Range, and evaluation of If-Unmodified-Since is true, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is false, return 200
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is false, return 412 or 2xx
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is GET or HEAD, return 304
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is false and method is not GET or HEAD, return 412
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method not GET, do not use If-Range, perform the requested method and respond according to its success or failure
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is true, return 206
- When If-Match and If-Unmodified-Since and If-Modified-Since and If-None-Match and If-Range, and evaluation of If-Match is true, do not use If-Unmodified-Since, and evaluation of If-None-Match is true, do not use If-Modified-Since, and method GET, and evaluation of If-Range is false, return 200