for-GET / http-decision-diagram

An activity diagram to describe the resolution of HTTP response status codes, given various headers.
https://github.com/for-GET/http-decision-diagram/blob/master/doc/2013-06-10-http-hell-no.md
Apache License 2.0
3.61k stars 196 forks source link

Precedence for conditionals #38

Closed aruediger closed 9 years ago

aruediger commented 10 years ago

Hi,

while adding support for conditional requests to spray I discovered a problem in the diagram. The docs state that he diagram follows the indications in httpbis although Conditional Requests - Section 6 suggests that:

Do you intentionally deviate from httpbis here and try to adhere to RFC2616?

andreineculau commented 10 years ago

No, this MUST be in line with HTTPbis. So this is a valid issue. Thank you for reporting it!

If you are sure about the changes and you have the time, welcome to send a PR with an updated https://github.com/for-GET/http-decision-diagram/blob/master/httpdd.fsm.cosmogol

I need to find some quiet time to read through, before I make a change.

aruediger commented 10 years ago

Done. (#39)

aruediger commented 9 years ago

Any updates on this one?

andreineculau commented 9 years ago

@2beaucoup, i got back to this project's issues last weekend. so expect a reply from me tomorrow. i am really sorry for the silence. thank you

andreineculau commented 9 years ago

@2beaucoup made a version of the change on the diagram in a (now deleted) branch but i wasn't sure how to proceed until my eyes finally found

   A recipient MUST ignore If-Modified-Since if the request contains an
   If-None-Match header field; the condition in If-None-Match is
   considered to be a more accurate replacement for the condition in
   If-Modified-Since, and the two are only combined for the sake of
   interoperating with older intermediaries that might not implement
   If-None-Match.

and

   A recipient MUST ignore If-Unmodified-Since if the request contains
   an If-Match header field; the condition in If-Match is considered to
   be a more accurate replacement for the condition in
   If-Unmodified-Since, and the two are only combined for the sake of
   interoperating with older intermediaries that might not implement
   If-Match.

Please check if the current state is fine with your understanding https://github.com/for-GET/http-decision-diagram/commit/48ef08c44e2222ae3e75132ad3b4ff87c24aedc0#diff-3 and close the issue.

PS: Pity - it's the first transition crossing, making the diagram a bit less clear.

aruediger commented 9 years ago

LGTM! Thanks for confirming and taking the time to look into this.