- From: Tom Johnson <tom@dp.la>
- Date: Mon, 15 Aug 2016 12:44:10 -0700
- To: LDP Next <public-ldpnext@w3.org>
- Message-ID: <CAOY0iGNGOXXYHhO2jU0zag-PGFDbGxTg848Vstj1Yn93cYTquA@mail.gmail.com>
A couple of us have run into an issue with the ETag expectations of LDP, and are hoping that some discussion can resolve the issue. The LDP specification (4.2.4.5)[0] has a few SHOULDs relating to client and server use of `If-Match` headers; namely, that clients SHOULD use them on modification, and that servers SHOULD *require* their use. RFC 7232 (sec. 3.1)[1] states that "An origin server MUST use the strong comparison function when comparing entity-tags for If-Match" (RFC 2616 contains the same restriction). These two clauses seem to recommend that a server SHOULD generate strong ETags for its resources---I don't believe a server can respect the recommendation of 4.2.4.5 any other way. As far as I know, no one has implemented strong ETags for content negotiable RDF resources. Short of caching all responses between updates, I'm not sure it's possible for an LDP server backed by a triplestore to make the relevant guarantees about the representations it returns. For clients, given that LDP servers are normally returning weak ETags, using `If-Match` is not a serious option (a weak etag will never match in strong comparison). Should LDP servers ignore 4.2.4.5? Can we recommend an alternate pattern for verification (`If-Unmodified-Since`)? As further background, a key point of discussion in the LDP WG's handling of this a thread from Feb. 2013.[2] The message linked refers to ignoring RFC 2616, based on a then current draft of 7232. This suggests to me that LDP is genuinely giving bad (out of date) advice, here. Best, Tom [0] https://www.w3.org/TR/ldp/#ldpr-put-precond [1] https://tools.ietf.org/html/rfc7232#section-3.1 [2] https://lists.w3.org/Archives/Public/public-ldp-wg/2013Feb/0035.html
Received on Monday, 15 August 2016 19:44:43 UTC