----- Original Message -----
From: "Dominik Wittenbeck" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, January 25, 2003 3:28 PM
Subject: [SOAP] Re: soap post and http 1.1 100 continue


> Yep, know that one,
>
> Why it does happen:
> although the HTTP 1.1 spec states that a HTTP 100 SHOULD NOT (or was it
MUST
> NOT ;-) to the client, unless it requires it by a specific header, IIS
does
> it with webservices and thereby about any that are published and
maintained
> with .NET ;-)

Not quite right :

An origin server SHOULD NOT send a 100 (Continue) response if the request
message does not include an Expect request-header field with the
"100-continue" expectation, and MUST NOT send a 100 (Continue) response if
such a request comes from an HTTP/1.0 (or earlier) client. There is an
exception to this rule: for compatibility with RFC 2068, a server MAY send a
100 (Continue) status in response to an HTTP/1.1 PUT or POST request that
does not include an Expect request-header field with the "100-continue"
expectation. This exception, the purpose of which is to minimize any client
processing delays associated with an undeclared wait for 100 (Continue)
status, applies only to HTTP/1.1 requests, and not to requests with any
other HTTP-version value.

> Solution:
> A HTTP 100 basically states: "ok I am ready for your content now". You
have
> probably submitted your content already... resend it, but the content
only,
> without the \r\n\r\n mark that separates headers from payload with HTTP.
> To serve a clean solution you should however go ahead and implement a
> listener that tries to hear a HTTP 100. With PHP this is kind of tiresome.
> In my implementation I also just resend the payload ;-)

A HTTP 100 basically states "ok based on your headers I won't reject your
body data, so send it now" - handy for services which need to check specific
headers. Imagine if the client sent 5MBs of data only to have it knocked
back because an authorization header wasn't present. :-)

I suppose a better solution would be to use the 100-Continue properly (i.e.
send headers + with an expect header and no body) or send HTTP/1.0 requests.

HTH

Danny.


-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to