shinrich opened a new issue #7346:
URL: https://github.com/apache/trafficserver/issues/7346


   I'm opening a new issue rather than reopening effectively the same older 
issue #2543.  This original issue was closed deciding that it would be more 
standards compliant for the origin to product the 100-continue response.  And 
in general I agree.  However, with this setting set to 0, the exchange between 
the user agent and ATS is not standards compliant if the Expect header is set 
to 100-continue.
   
   In the current default case, the following steps occur.
   1. Client sends POST request with Expect header set to 100-continue
   2. ATS sends post request to origin
   3. ATS sets up tunnel to send post body from client to origin
   4. ATS receives and relays 100-continue response from origin
   5. ATS receives and relays the POST response
   
   So from the client's perspective, 
   1. Send POST request
   2. Send POST body
   3. Receive 100-continue response
   4. Receive POST body response
   
   In this default sequence the 100-continue does absolutely nothing.  If the 
client was implementing things strictly, the client should stall sending the 
post body because it hasn't received the 100-continue response.
   
   The reason I stumbled on this is that I was helping something debug 
"performance" issues with adding ATS to an exchange.  Adding ATS adding 1 
second to the latency of a relatively small post request made by curl.  Even 
those the ATS and the origin were sitting right next to each other.  The issue 
is that proxy.config.http.send_100_continue_response was set to 0.  Curl didn't 
stall but it seemed to wait for around 1 second before sending along the post 
body anyway.
   
   Since many people evaluate ATS using tools like curl, I think a more 
standards compliant and better out of the box experience would be to have 
proxy.config.http.send_100_continue_response  set to 1 by default.
   
   The other alternative would be to adjust the ATS behavior to properly delay 
transmitting the POST body until the 100-continue response has been propagated. 
 That is a much bigger change, and I don't see anyone taking the time to do 
that in the near future..


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to