[
https://issues.apache.org/jira/browse/TS-1125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14581692#comment-14581692
]
ASF GitHub Bot commented on TS-1125:
------------------------------------
Github user ffcai commented on the pull request:
https://github.com/apache/trafficserver/pull/216#issuecomment-111045489
Hi @adityaumrani , for *POST/PUT* method, `Content-Length` should present
or use Chunked Transfer Encoding (present `Transfer-Encoding: chunked`). And,
ATS has a dedicated function - `HttpTransact::check_request_validity` for this
check.
```cpp
// Require Content-Length/Transfer-Encoding for POST/PUSH/PUT
if ((scheme == URL_WKSIDX_HTTP || scheme == URL_WKSIDX_HTTPS) &&
(method == HTTP_WKSIDX_POST || method == HTTP_WKSIDX_PUSH || method
== HTTP_WKSIDX_PUT) &&
s->client_info.transfer_encoding != CHUNKED_ENCODING) {
if ((s->txn_conf->post_check_content_length_enabled) &&
!incoming_hdr->presence(MIME_PRESENCE_CONTENT_LENGTH)) {
return NO_POST_CONTENT_LENGTH;
}
if (HTTP_UNDEFINED_CL == s->hdr_info.request_content_length) {
return INVALID_POST_CONTENT_LENGTH;
}
}
}
```
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpTransact.cc#L5282
I think we can just skip doing this here and let the function check it some
later.
> POST's with Expect: 100-continue are slowed by delayed 100 response.
> --------------------------------------------------------------------
>
> Key: TS-1125
> URL: https://issues.apache.org/jira/browse/TS-1125
> Project: Traffic Server
> Issue Type: Bug
> Components: HTTP
> Affects Versions: 3.0.2
> Environment: TS 3.0.2 going to Apache 2.2 web server
> Reporter: William Bardwell
> Assignee: Bryan Call
> Priority: Minor
> Labels: yahoo
> Fix For: 5.0.0
>
> Attachments: TS-1125.diff, TS-1125.diff, ts1125.diff, ts1125.diff,
> ts1125.diff
>
>
> Sending a post like:
> POST / HTTP/1.1
> Host: www.example.com
> Content-Length: 10
> Expect: 100-continue
> directly to the web server immediately sends back:
> HTTP/1.1 100 Continue
> And then when the post data is sent, a status 200 response comes back.
> But when going through ATS the "HTTP/1.1 100 Continue" is not sent
> immediately, and instead is sent after the POST data has been received. This
> is legal, but it makes clients that are hoping for a 100 continue to wait a
> little while hoping to get that, ATS should forward that response through
> immediately.
> Note: I see curl using "Expect: 100-continue" with > 1024 bytes of post data,
> but web searching indicates that some Microsoft products also use it.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)