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

Masakazu Kitajo commented on TS-2902:
-------------------------------------

Hi Feifei,
The SHOULD (sending Content-Length) is for user agents, and rejecting the 
request is a MAY but not a MUST/SHOULD. It would be kind if we accept the 
requests with a configurable option. Some HTTP client request doesn't send the 
header.
http://serverfault.com/questions/315849/curl-post-411-length-required
(I agree with the comments. It's a hack.)

Changing status code is not my point, actually. There is no difference between 
400 and 411 for me because the request is rejected. I want to accept the 
request. As for status code, I just wanted to say correct status code is 411 if 
we reject the request.

The patch makes requiring "Content-Length" configurable, and I believe the 
behaviour of TS with the default value is not changed, means it doesn't break 
other's use cases. (The author of patch designed so because changing the 
behaviour may break them.)


> 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