Subject: WebDAV If header field and HTTP conditional precedence

From: Ken Murchison <[email-masked]>
Date: Wed, 26 Dec 2012 10:35:51 -0500

Happy Holidays to All!

I'm trying to figure out where the If header field would fit in the
precedence order outlined in:
http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-21#section-5

I'm assuming that the If header field should be evaluated in a step 0, 
but my question is what should happen when the If header is present and
evaluates to true?  Should processing continue to step 3 or step 1?  In
other words, does If completely supersede If-Match, where a client
wishing to submit both a state token and an ETag MUST only use If, or is
a client allowed to submit a state token with If AND submit an ETag with
If-Match?

In text, the two options might look something like this:

    0.  When If is present, evaluate it:

        *  if true, continue to step 3

        *  if false, respond 412 (Precondition Failed)

    1.  When If is not present and If-Match is present,
        evaluate it:

    ...

OR

    0.  When If is present, evaluate it:

        *  if true, continue to step 1

        *  if false, respond 412 (Precondition Failed)

    1.  When If-Match is present, evaluate it:

    ...

Thoughts?

-- 
Kenneth Murchison
Principal Systems Software Engineer
Carnegie Mellon University