- From: Steve Speicher <sspeiche@gmail.com>
- Date: Mon, 1 Dec 2014 08:34:39 -0500
- To: "henry.story@bblfish.net" <henry.story@bblfish.net>
- Cc: public-ldp <public-ldp@w3.org>
On Sat, Nov 29, 2014 at 7:49 AM, henry.story@bblfish.net <henry.story@bblfish.net> wrote: > >> On 29 Nov 2014, at 12:43, henry.story@bblfish.net wrote: >> >> There is a problem with the testPutBadETag >> If I run: >> >> java -jar target/ldp-testsuite-0.2.0-SNAPSHOT-shaded.jar --httpLogging --server https://localhost:8443/2013/ --basic --test testPutBadETag >> >> my server [1] correctly returns a 200 when the test >> suite sends a PUT request with the header [2] >> >> If-Match="This is not the ETag you're looking for" > > I am probably wrong here. This is just a bit of a > tricky part of the spec. > > 1. The Etag above is mis-formed > Correct, the test uses a mis-formed etag to cause the failure code. > because it contains spaces > > http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-26#page-9 > > ETag = entity-tag > > entity-tag = [ weak ] opaque-tag > weak = %x57.2F ; "W/", case-sensitive > opaque-tag = DQUOTE *etagc DQUOTE > etagc = %x21 / %x23-7E / obs-text > ; VCHAR except double quotes, plus obs-text > > 2. But because the If-Match header is present and no tags match > the response must fail. > It should fail either since the etag is misformed or no match. - Steve >> >> The same is true for the PUT on an LDPC with that same If-Match header. >> But even if the test suite sent a correct If-Match header the >> explanation given here >> >> "LDP servers MUST respond with status code 412 (Condition Failed) if ETags fail >> to match when there are no other errors with the request [HTTP11]. LDP servers >> that require conditional requests MUST respond with status code 428 >> (Precondition Required) when the absence of a precondition is the only reason >> for rejecting the request [RFC6585]. >> " >> >> leaves a lot of wiggle room: most of all I am not sure what a PUT >> on a collection should do. I could add code that checked that there >> were no server managed properties such as ldp:contains that were >> changed, and sent back a 409 Conflict if so as suggested by section >> 4.2.4.3 > > I think others have come across this problem before. > >> >> Henry >> >> >> >> [1] https://github.com/read-write-web/rww-play/tree/dev >> [2] http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-26#page-9 >> >> Social Web Architect >> http://bblfish.net/ >> > > Social Web Architect > http://bblfish.net/ > >
Received on Monday, 1 December 2014 13:35:10 UTC