[ 
https://issues.apache.org/jira/browse/TS-2902?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14100379#comment-14100379
 ] 

Feifei Cai commented on TS-2902:
--------------------------------

Sorry for the late reply.
I'm a little confused with the user agent's logic: it is a POST request, but 
not sending body data.
It is defined in RFC 7231 as follows:
[http://tools.ietf.org/html/rfc7231#section-4.3.3]
{quote}
The POST method requests that the target resource process the
   representation enclosed in the request according to the resource's
   own specific semantics.
{quote}
It does not require a message body explicitly. I also see some discussion here:
[http://w3-org.9356.n7.nabble.com/POST-with-empty-body-td103965.html]
However, when user agent sends a POST request without message body, the 
original server should be able to handle this special case. If the original 
server behind ATS supports this use case, I agree that we should consider 
allowing the request to pass; but if not, then ATS would send back 400/411 
response from original server after relay the request to it. How about test the 
POST request against original server first? We need to ensure both ATS and 
original server accept the request.


> Allow POST requests without a Content-Length header
> ---------------------------------------------------
>
>                 Key: TS-2902
>                 URL: https://issues.apache.org/jira/browse/TS-2902
>             Project: Traffic Server
>          Issue Type: Improvement
>            Reporter: Masakazu Kitajo
>            Assignee: Bryan Call
>              Labels: review
>             Fix For: 5.1.0
>
>         Attachments: make_it_configuarable.patch
>
>
> I get "*400* Content Length Required" when user agents send a POST request 
> that doesn't contain any body data without a Content-Length header.
> (The header is omitted because the length is zero, I think)
> According to RFC2730 Section 3.3.2, presence of Content-Length is not MUST.
> http://tools.ietf.org/html/rfc7230#section-3.3.2
> {quote}
> A user agent SHOULD send a Content-Length in a request message when
>    no Transfer-Encoding is sent and the request method defines a meaning
>    for an enclosed payload body.
> {quote}
> Also according to section 3.3.3,  a server are allowed to reject similar 
> request with 411 Length Required, but not *400*.
> http://tools.ietf.org/html/rfc7230#section-3.3.2
> {quote}
>   A server MAY reject a request that contains a message body but not a
>    Content-Length by responding with 411 (Length Required).
> {quote}
> Traffic Server should accept the requests, no body data without 
> Content-Length header, or reject it with *411*. I think the former one is 
> better for interoperability.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to