[
https://issues.apache.org/jira/browse/TS-3693?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14616996#comment-14616996
]
Sudheer Vinukonda edited comment on TS-3693 at 7/7/15 5:20 PM:
---------------------------------------------------------------
AFAIK, a mere successful parsing of the request doesn't mean the request has
passed the proxy's request header validation. Further validation happens in
*HttpTransact::is_request_valid()*. Check out
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpTransact.cc#L6293
I've seen a number of requests in production returning "400, Invalid HTTP
Request"/ "400, Host Header Required" etc. None of these errors are obviously
caught at the time of parsing the request. All such requests would now return a
"100 CONT" before returning 400 error.
Example (from prod, hiding the actual request url)
"1436288265.913 0 171.6.146.57 ERR_INVALID_REQ 400 0 GET http://xxxxxxx?xxxxxx
- NONE/- - http://xxxxxxx f1 f2 f3 f4"
Can the specific plugin try to send the "100 CONT" directly? I'm concerned
that, for a specific plugin's requirement, the general behavior of the core is
made poorer.
was (Author: sudheerv):
AFAIK, a mere successful parsing of the request doesn't mean the request has
passed the proxy's request header validation. Further validation happens in
*HttpTransact::is_request_valid()*. Check out
https://github.com/apache/trafficserver/blob/master/proxy/http/HttpTransact.cc
I've seen a number of requests in production returning "400, Invalid HTTP
Request"/ "400, Host Header Required" etc. None of these errors are obviously
caught at the time of parsing the request. All such requests would now return a
"100 CONT" before returning 400 error.
Example (from prod, hiding the actual request url)
"1436288265.913 0 171.6.146.57 ERR_INVALID_REQ 400 0 GET http://xxxxxxx?xxxxxx
- NONE/- - http://xxxxxxx f1 f2 f3 f4"
Can the specific plugin try to send the "100 CONT" directly? I'm concerned
that, for a specific plugin's requirement, the general behavior of the core is
made poorer.
> Move 100-continue logic to read client header for intercept plugins
> -------------------------------------------------------------------
>
> Key: TS-3693
> URL: https://issues.apache.org/jira/browse/TS-3693
> Project: Traffic Server
> Issue Type: Improvement
> Components: HTTP
> Reporter: Bryan Call
> Assignee: Bryan Call
> Labels: yahoo
> Fix For: 6.1.0
>
>
> From https://github.com/apache/trafficserver/pull/216 :
> Currently, ATS handles "Expect: 100-continue" header in
> HttpSM::state_send_server_request_header. In intercept plugin case, ATS may
> have no chance to run into this logic, it handles the header in a later point
> - HttpSM::state_send_server_request_header. I did not take this into account
> when I wrote the first patch. Now we have an intercept plugin use case in
> yahoo, and I think we need to move the handle logic some earlier, right after
> finish parsing the client request header.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)