[Twisted-web] Nevow future

glyph at divmod.com glyph at divmod.com
Wed Apr 12 11:25:36 CDT 2006

On Wed, 12 Apr 2006 07:04:00 -0200, Manlio Perillo <manlio_perillo at libero.it> wrote:
>glyph at divmod.com ha scritto:

>> What is a 'prevision'?
>1) We don't have any idea of what will happen in the future
>2) We have an ideal architecture and API definition in mind, but we
>don't know how it will take to complete the developement

#2.  That was what the "context is going away, streams are going away" stuff was.

>I'm not sure of this point.
>Athena depends on the reactor, but when using Nevow with Zomne, don't we
>have a full twisted application running?

True.  But you also have a full web server running.

>By the way, what about:
>"""Running your Nevow applications under twisted.web also gives you
>access to some of the more advanced "Live" features of Nevow, such as
>nevow.livepage and nevow.canvas. Currently, these modules require more
>control over the HTTP socket than CGI or WSGI can provide. (This may
>change in the future.)"""

That document is probably slightly out of date.  For example, nevow.livepage has been deprecated in favor of nevow.athena.  I don't think anyone is maintaining nevow.canvas any more.

>lighttp is gaining popularity, so there are opportunities to have it
>available on many hosting solutions.

Yes.  Personally, I love lighttpd; I would really like it if, for example, when Mantissa starts a web server, it could automatically put static content in a front-end lighttpd proxy.  I should really file a ticket for that...

lighttpd, like twisted.web[2], supports reverse proxies as well as other forms of frontend/backend server communication.

>Just a question:
>it is possible to forward an HTTP request using Unix domain sockets?


>Is this supported with Apache and lighhtp?

Not as far as I know.  Everything sucks except Twisted ;-).

>> Yes but _WHY_ don't you like the idea?
>I like the idea of a full separation between a web server and a web

Can you name a single problem that this solves, or feature that it enables?

>The question is:

Yes.  That is exactly the question.  However, you've phrased it misleadingly.  Since the invention of linking libraries, "program" does not have to be the same thing as "process".  You can run a web server *library* as part of your web server *application* to communicate with the central web server on a particular system.  There is also the question of what role a particular process serves in a particular environment, which is only tangentially related to the protocol that it should speak.

There are different requirements for serving requests at different points in a pipeline.  There are web front-end proxies which do nothing but inspect a cookie and send the request, bytes unmodified, on to another machine.  There are servers which will internally process some requests ("static content") and forward others ("dynamic content").

In other words,

>- what can do a web server?

Translate HTTP requests into behavior (such as dispatching to an application)

>- what have to do a web application?

Translate HTTP requests into behavior (such as processing orders for a store)

>> [...] twisted.web.distrib [...]

>This is interesting.

Yes, I do think so :).

>> [...]
>> I hope I've made it clear that no, it isn't.
>Thanks for the exhaustive explanation.

You're welcome.

More information about the Twisted-web mailing list