Github user sudheerv commented on the pull request:

    https://github.com/apache/trafficserver/pull/216#issuecomment-110774240
  
    @ffcai is right about how the config <send_100_continue_response> works. 
Basically, when enabled, ATS would send a dummy "100 CONT" to the clients on 
receiving POST requests. Below's a clarification on why this feature was 
needed/added (afaik) - 
    
    *) ATS core has bugs/limitations in the handling of "100 CONT" message 
(apparently, ATS either stalls indefinitely on receiving the message from the 
origin or relays it back to the client too late (after POST body) both of which 
are not ideal from a client's perspective). 
    *) Some legacy clients always wait for a fixed duration before sending the 
POST body, if a "100 CONT" is not received. 
    
    The solution to address both concerns above was to basically send a dummy 
"100 CONT" from ATS and strip off the *Expect* header in the server request 
(TS-1125).
    
    In any case, even with the previous patch, sending of "100 CONT" was being 
done in *HttpSM::state_send_server_request_header* which only means the origin 
connection has been made but, not really after the origin gave a go-ahead to 
send the POST body (there's no response from origin yet in that state, afaict).
    
    {code}
    The purpose of the 100 (Continue) status (see section 10.1.1) is to allow a 
client that is sending a request message with a request body to determine if 
the origin server is willing to accept the request (based on the request 
headers) before the client sends the request body. In some cases, it might 
either be inappropriate or highly inefficient for the client to send the body 
if the server will reject the message without looking at the body.
    {code}


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastruct...@apache.org or file a JIRA ticket
with INFRA.
---

Reply via email to