[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: HTTP Proxy



Darrin Thompson wrote:
> 
> Igor and friends,
> 
> Have you considered implementing http proxy capabilities in a TUX kernel
> module? It seems like TUX is the ideal place for a proxy.
> 
> * That I know of, no one has implemented a really good (free) proxy that
> can perform the new functions in HTTP 1.1 spec.
> 
> * The HTTP 1.1 proxy features include some HTTP headers directly related
> to caching. TUX seems well suited to handling these.

I'm working on an event-driven user-space proxy cache that implements 
HTTP/1.1.  (For the record, I intend to GPL it once I've stabized it.)  
And it is neither fun nor easy.  No, let me rephrase.  The last 
version was threaded, and that was really hard to get right.  Doing 
HTTP/1.1 proxying and caching with an event-driven server, including 
all of the MUSTs and most of the SHOULDs, is nightmarish.  There are
WAY too many corner cases outlined in the spec.  (And it has lots of
gotchas that tend to rear their ugly heads only after you've spent 
two months on design that has nasty interactions with unspoken
assumptions and subtleties of the BNF.)  And from the looks of
the TUX code, the current authors seem intersted in avoiding corner 
cases at all costs.  (Examples: A valid HTTP header doesn't need a
space after the ":".  Header line folding is ignored.  I could go 
on...)

A pure HTTP/1.1 proxy (no caching) might be a reasonable possibility... 
it'll require some more infrastructure (f.e. a DNS resolver), but it's
at least a managable project.

Adam





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index] []