In section 9, last sentence of the first paragraph:
“Clients SHOULD be constructed with this in mind and SHOULD perform a
GET on the member resource before editing.”
Shouldn't the first “SHOULD” be a “should” and the second a “MAY” or
even “may” (or “might”)?
Section 6 of RFC2119 (Guidance in the use of these Imperatives) is:
“Imperatives of the type defined in this memo must be used with care and
sparingly. In particular, they MUST only be used where it is actually
required for interoperation or to limit behavior which has potential for
causing harm (e.g., limiting retransmisssions) For example, they must
not be used to try to impose a particular method on implementors where
the method is not required for interoperability.”
Offline clients won't perform a GET on the member resource before
editing; some clients might want to use HEAD instead of GET [1]; etc.
Moreover, this is just a “good practice” (still in [1]), not an
“Imperative”. Let the market decide (I suspect most clients will
effectively perform a conditional GET –using If-None-Match or
If-Modified-Since– but let's not legislate).
[1] http://www.imc.org/atom-protocol/mail-archive/msg02015.html
--
Thomas Broyer