Hi Chris,

actually from the HTTP spec any request on the server side should handle a request body even if not used or required by the request method. On the client side they say the TRACE method must not have one. For all others its kind of open. I remember that we used request body in GET and no body in POST on some projects.

For DELETE request it is actually useful if you want to handle REST services. There you can send in the request body what to delete (lists etc).

thanks
Andreas



On 21.06.13 15:01, Chris Hegarty wrote:
Hi Andreas,

Your changes look fine to me. Strange to include a body in a DELETE
request, but seems harmless.

I noticed that the javafx issue is no longer dependent on this, but
still worth fixing.

I can sponsor this change into jdk8 for you.

-Chris.

On 20/06/2013 23:04, Andreas Rieber wrote:
Hi,

here the next issue i would need a sponsor for. Also a very small one.

Bug:
http://bugs.sun.com/view_bug.do?bug_id=7157360

Looked straight forward to me for the DELETE method, but from last
issue i still have the HTTP/1.1 spec open. Here the relevant parts:

 >>
4.3 Message Body
...
The presence of a message-body in a request is signaled by the
inclusion of a Content-Length or Transfer-Encoding header field in the
request's message-headers. A message-body MUST NOT be included in a
request if the specification of the request method (section 5.1.1)
does not allow sending an entity-body in requests. A server SHOULD
read and forward a message-body on any request; if the request method
does not include defined semantics for an entity-body, then the
message-body SHOULD be ignored when handling the request.
...

9.8 TRACE
...
The TRACE method is used to invoke a remote, application-layer loop-
back of the request message. The final recipient of the request
SHOULD reflect the message received back to the client as the
entity-body of a 200 (OK) response. The final recipient is either the
origin server or the first proxy or gateway to receive a Max-Forwards
value of zero (0) in the request (see section 14.31). A TRACE request
MUST NOT include an entity.
...
 >>

To me 4.3 says: a server has to handle a request body (entity), no
matter what request method is requested.
9.8 TRACE is the only request method where it says "MUST NOT include
an entity".

So the change i made is: allow request entity excluding for method
TRACE, where it MUST NOT include one. Does sound right? This time the
test was easy to write.

Webrev is here:
http://cr.openjdk.java.net/~arieber/7157360/webrev.00/

thanks
Andreas

Reply via email to