-
Notifications
You must be signed in to change notification settings - Fork 44
Tighten language around GET request bodies (Mnot 202) #250
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not sure about havign a new normative requirement for DELETE. Did we agree on this.
That said, we also need to mention the normative change for GET in "Changes from 7231".
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
For editorial consistency, I have been removing cases where requirements are applied to plurals or to larger-than-necessary scope. In this case, I think it should be
A payload within a GET request message has no defined semantics.
A client SHOULD NOT generate a payload body in a GET request.
Sending a payload body on a GET request might cause some existing
implementations to reject the request.
I'm fine with that; it was borderline. |
# Conflicts: # draft-ietf-httpbis-semantics-latest.xml
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
-
This is a new normative requirement on GET; good, but needs to be mentioned as a change.
-
The change on DELETE is not what we discussed in the WG. I propose to take this out here and move it into a separate issue.
Change note added. Creating a new issue doesn't make any difference; they're just how we track what we need to do. IIRC there was one person who mentioned an existence proof of a DELETE body -- which is very analogous to the situation with GET. We know that some people do them, but we also know that they're not interoperable, and this is not an intended extension of the protocol. |
I strongly believe that the issues for GET and DELETE are very different, and that handling them in a single ticket is harmful. Can we please focus on GET first? |
Please update the PR and create the issue, then. |
will do. |
Would it be possible to mention the problems around caching with a body on This also brings up what we discussed at the HTTP Workshop in May around creating a header to declare that the request body should also be considered a part of the cache key, as well as the possibility of creating a new |
@asbjornu - the pull request has this:
IIUC, you'd like this also to mention other failure modes such as GET request suceeding, but result might be inproperly cached? (the other points IMHO are out of scope for the HTTP core revision; maybe they should be tracked in the http-extensions repo instead). |
Yes, exactly. Just as an informational warning so implementers understand the dangers they are putting themselves into by ignoring "SHOULD NOT".
Should I create an issue for |
|
@reschke: Ok, httpwg/http-extensions#942 and httpwg/http-extensions#943 created. |
A payload within a GET request message has no defined semantics. A client | ||
&SHOULD-NOT; generate a body in a GET request. Sending a payload body on a | ||
GET request might cause some existing implementations to reject the | ||
request. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"... or might cause surprising effects in HTTP caches which ignore the payload."
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
caches that ignore the request payload? I'm not sure what you mean here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A cache might just pass the request payload to the server, but then cache the result despite the fact it might vary on the request body. So that kind of failure would only be indirectly observable.
I think it's worth pointing this out...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
perhaps "... or might cache caches to reuse the response erroneously."
…of a payload on a GET request shall be piked and roasted over a blast furnace
Fixes #202.