Doc: https://www.http-probe.com/docs/smuggling/expect-100-cl/
The documentation states that if the server has received the body and headers, it may not send the "HTTP/1.1 100 CONTINUE" message to the client.
This is a profound misconception on the part of the people writing the standards. They're far removed from programming!
They forgot that packets can be fragmented along the way.
And even if the client sent the body along with the "Expect: 100-continue" header, a situation could still arise where the server first reads from the pending socket (the first recv call) and only then the request body (the second recv call). The standard writers didn't see this coming!
So the server should always send an "HTTP/1.1 100 CONTINUE" response, so as not to violate the standard!
Doc: https://www.http-probe.com/docs/smuggling/expect-100-cl/
The documentation states that if the server has received the body and headers, it may not send the "HTTP/1.1 100 CONTINUE" message to the client.
This is a profound misconception on the part of the people writing the standards. They're far removed from programming!
They forgot that packets can be fragmented along the way.
And even if the client sent the body along with the "Expect: 100-continue" header, a situation could still arise where the server first reads from the pending socket (the first
recvcall) and only then the request body (the secondrecvcall). The standard writers didn't see this coming!So the server should always send an "HTTP/1.1 100 CONTINUE" response, so as not to violate the standard!