Sketch of a Scheme http request procedures John Cowan (12 Mar 2020 20:06 UTC)
Re: Sketch of a Scheme http request procedures Arthur A. Gleckler (12 Mar 2020 21:16 UTC)
Re: Sketch of a Scheme http request procedures Dimitris Vyzovitis (12 Mar 2020 21:28 UTC)
Re: Sketch of a Scheme http request procedures Arthur A. Gleckler (12 Mar 2020 21:32 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (12 Mar 2020 21:36 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (12 Mar 2020 21:37 UTC)
Re: Sketch of a Scheme http request procedures Arthur A. Gleckler (12 Mar 2020 21:56 UTC)
Re: Sketch of a Scheme http request procedures Peter Bex (13 Mar 2020 06:40 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (13 Mar 2020 14:39 UTC)
Re: Sketch of a Scheme http request procedures Peter Bex (13 Mar 2020 14:52 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (13 Mar 2020 15:48 UTC)
Re: Sketch of a Scheme http request procedures Lassi Kortela (13 Mar 2020 18:48 UTC)
Re: Sketch of a Scheme http request procedures Lassi Kortela (13 Mar 2020 18:51 UTC)
Re: Sketch of a Scheme http request procedures Arthur A. Gleckler (13 Mar 2020 15:59 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (13 Mar 2020 16:29 UTC)
Re: Sketch of a Scheme http request procedures Arthur A. Gleckler (13 Mar 2020 16:39 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (13 Mar 2020 19:35 UTC)
Re: Sketch of a Scheme http request procedures Duy Nguyen (14 Mar 2020 01:50 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (14 Mar 2020 01:58 UTC)
Re: Sketch of a Scheme http request procedures Duy Nguyen (14 Mar 2020 02:05 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (14 Mar 2020 02:10 UTC)
Re: Sketch of a Scheme http request procedures Duy Nguyen (14 Mar 2020 02:15 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (14 Mar 2020 02:52 UTC)
Re: Sketch of a Scheme http request procedures Duy Nguyen (14 Mar 2020 02:57 UTC)
Re: Sketch of a Scheme http request procedures John Cowan (14 Mar 2020 21:52 UTC)
Re: Sketch of a Scheme http request procedures Lassi Kortela (14 Mar 2020 22:05 UTC)

Re: Sketch of a Scheme http request procedures Duy Nguyen 14 Mar 2020 02:04 UTC

You may want to shut down the connections at some point. If everything
is hidden away, will these connections persist until the end of the
program, or terminate after some idle time (and if so, how do we
specify it)? How many connections can persist at the same time?

On Sat, Mar 14, 2020 at 8:58 AM John Cowan <xxxxxx@ccil.org> wrote:
>
> I figure persistent connections and HTTP/2 can be handled internally to the implementation.   The client program should not have to care one way or the other, as the high-level semantics are completely unchanged by these transport-level improvements.
>
> On Fri, Mar 13, 2020 at 9:50 PM Duy Nguyen <xxxxxx@gmail.com> wrote:
>>
>> On Fri, Mar 13, 2020 at 3:06 AM John Cowan <xxxxxx@ccil.org> wrote:
>> >
>> > This is meant for simple HTTP(S) requests.
>>
>> Just to be sure, this covers HTTP/1.1, not HTTP/2, or both?
>>
>> >  The idea is that there is a procedure, http-request, that accepts a request dictionary and returns a reply dictionary.  In this context, dictionary is some unspecified key-value data structure.  Most of the dictionaries have symbol keys.
>> >
>> > Redirects are performed automatically until a loop is seen or too many redirects: responses are chained using the request field of the response dictionary
>> >
>> > Compression is automatically undone on received content, and must be specified on sent content
>> >
>> > Request dictionary:
>> >
>> > type: 'request
>> > url: a string with the URL to request
>> > verb: a symbol (upper cased on the wire) representing the HTTP verb
>> > params: a dictionary mapping parameter names to parameter value strings (overrides the query part of the URL)
>> > headers: dictionary of random request headers
>> > content-type: media type of the content (string)
>> > content-encoding: how the outgoing content is compressed (symbol)
>> > cookies: a cookie jar (see below)
>> > connection-timeout: time in jiffies for TCP connection
>> > read-timeout: time in jiffies to send and receive the whole response
>> > content: a string (encoded in UTF-8) or bytevector to send, or an input port to read chars or bytes from (possibly streaming)
>> > file: a local file to send (mutually exclusive with content)
>> > response-style: indicates how response content is delivered (string, bytevector, possibly binary or textual input port if provided by the implementation)
>>
>> How do we handle connection reuse? I suppose we can just have a
>> mutable "session" item in this dictionary?
>> --
>> Duy

--
Duy