What exactly does "put" do on Server?
Richard Gaskin
ambassador at fourthworld.com
Tue Apr 20 21:01:34 EDT 2021
Postman shows a single reply to the client from Apache.
strace on the server shows each "put" implemented at the system level as
a write to stdout.
So it looks to me like Apache buffers writes it receives and sends all
of it to the client in one go, with a header that accurately accounts
for the total size of multiple "put"s in the Content-Length.
I'm still curious to know how Apache knows when to send to the client -
does it wait for the CGI to terminate?
But for now, at least it seems we have an answer to the question of
whether LC Server or Apache buffers the writes.
--
Richard Gaskin
Fourth World Systems
Tom Glod wrote:
> Following, I've wondered this, but never had enough motivation to test it.
>
> On Tue, Apr 20, 2021 at 4:00 PM Richard Gaskin via use-livecode <
> use-livecode at lists.runrev.com> wrote:
>
>> Normally, HTTP is used for request-reply patterns, where the server
>> receives the request, does some processing to it, and then sends back
>> the reply.
>>
>> In a faceless environment like Server, "put" goes to stdout, yes? So
>> when we say "put tData", then the contents of tData are handed back to
>> Apache which then sends them along to the client.
>>
>> So what happens when I have a script that uses multiple "put" statements?
>>
>> Does LC Server buffer all "put" output together and send it as one
>> string back to the client?
>>
>> If so, why do I see faster results if I collect data myself and use only
>> one "put"?
>>
>> If not, how does it write a meaningful header, since the length can't be
>> known in advance?
>>
>> What exactly is the Server engine doing with "put"?
>>
>> --
>> Richard Gaskin
>>
>
>
> --
> Tom Glod
> Founder & Developer
> MakeShyft R.D.A (www.makeshyft.com)
> Mobile:647.562.9411
More information about the use-livecode
mailing list