I'm prototyping an application that is intended to provide an http gateway to a large number of machines that don't have http servers on them.  When a get request comes in for a resource, I have Yaws picking apart the url, calling the machine with information about request.  Because I don't want the remote client to send data to arbitrary clients, the remote machine will then make an http request back to yaws with the data.  At this point the original request can be completed.  A similar thing would occur with a put or post request as well, although with the data flowing in the opposite direction.

I was originally interested in the streaming API's, but after looking at the information on clidata field in the Arg record, it seems like Yaws will read the entire contents of data sent to it by the client before calling the out/1 method defined in an appmod.  Is that correct?  Is this true for all methods?