[Haskell-cafe] Re: RFC: A standardized interface between web servers and applications or frameworks (ala WSGI)

Michaeljohn Clement mj at mjclement.com
Sun Apr 13 23:50:48 EDT 2008

Adam Langley wrote:
> On Sun, Apr 13, 2008 at 4:59 AM, Johan Tibell <johan.tibell at gmail.com> wrote:
>>  * Using a different set of data types would work better.
> Give that this is Haskell, I'd suggest more types ;)
> HTTP headers aren't just strings and, at the risk of tooting my own
> horn, I'll point to the Headers structure in [1].

That is one of the things I don't like about Network.HTTP, which also 
enumerates header fields.  It is inconvenient to have to look up the 
names in the data type, when the standard field names are already known, 
and it makes using non-RFC2616 headers less convenient.

Automatic parsing of header fields also makes unusual usage inconvenient, 
(for example the Range header support in [1] is a profile of RFC2616.)

I think those kinds of features belong in frameworks; they will be more 
of an annoyance than a help to anyone that is writing to the WSGI layer.

> Likewise, URLs have
> lots of structure that should just be handled in one place [2]

Yes, I think should be parsed to the level of granularity specified by 
RFC 2616 (i.e. scheme, host, port, path, query string) and anything 
more (like parsing query strings) should be handled by frameworks.

> [1] http://darcs.imperialviolet.org/darcsweb.cgi?r=network-minihttp;a=headblob;f=/Network/MiniHTTP/Marshal.hs
> [2] http://darcs.imperialviolet.org/darcsweb.cgi?r=network-minihttp;a=headblob;f=/Network/MiniHTTP/URL.hs

Michaeljohn Clement

More information about the Libraries mailing list