RFC: A standardized interface between web servers and
applications or frameworks (ala WSGI)
Chris Smith
cdsmith at twu.net
Sun Apr 13 21:32:07 EDT 2008
On Sun, 13 Apr 2008 16:06:43 -0700, 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].
Wait, I'm not sure I agree here. How are headers not just strings? By
assuming that, are we guaranteeing that anything using this interface
cannot respond gracefully to a client that writes malformed headers?
Another perspective: there is unnecessary variation there in how
interfaces are represented. If I'm looking for a header, and I know its
name as a string, how do I look for it? Well, apparently it's either a
named field (if it's known to the interface) or in the "other" section
(if not). So I write a gigantic case analysis? But then suppose the
interface is updated later to include some headers that popped up
unofficially but then are standardized in a future RFC. (This is not too
odd; lots of REST web services invent new headers every day, many of
which do things that make sense outside of the particular application.)
Does old code that handled these headers stop working, just because it
was looking in the "other" section, but now needs to check a field
dedicated to that header?
> Likewise, URLs have
> lots of structure that should just be handled in one place [2]
This I do agree with.
--
Chris Smith
More information about the Libraries
mailing list