List Info

Thread: Frontend CherryPy (in TurboGears) with CGIHTTPServer (py distr.)




Frontend CherryPy (in TurboGears) with CGIHTTPServer (py distr.)
user name
2006-03-23 18:51:25
venkatbo wrote:
> > ... What specific features of HTTP/1.1 are you
interested in?
> 
> Basically a subset of those features listed in
> http://www.lighttpd.n
et/modules

Here's that list and how CP stacks up (rearranged a bit to
separate CP's
server from CP's app framework). Y = Yes, N = No, and E =
someone has
written an extension

HTTP/1.1 features/compliance:

CP Framework:

Y    * Ranges (start-end, start-, -end, multiple ranges)
Y    * methods: GET, HEAD, POST
     * External Cache Support
Y          o Last-Modified + If-Modified handling
N          o ETag + If-None-Match handling
Y    * sends Content-Type
     * on-the-fly output compression
N          o deflate
Y          o gzip
     * authentification
E          o basic, digest
E          o backends: plain files, htpasswd, htdigest, ldap
Y    * Sends 206 for Range Requests
Y    * Sends 304 for If-Modified Requests
Y    * Sends 400 for missing Host on HTTP/1.1 requests
Y    * Sends 400 for broken Request-Line
Y    * Sends 411 for missing Content-Length on POST requests
Y    * Sends 416 for "out-of-range" on Range:
Header
E    * Sends 405 (501) for request-method != (GET|POST|HEAD)
        [?? lighttpd doesn't allow PUT or DELETE ?!?!]
N    * Sends 505 for protocol != HTTP/1.0 or HTTP/1.1
Y    * Sends Date: on every requests
N    * Validates Host headers

CP server:

     * Persistent Connections
N          o HTTP/1.0 Keep-Alive
N          o HTTP/1.1 persistent Connections
Y          o sends Content-Length if possible
N          o sends Transfer-Encoding: chunk, if
Content-Length is not
possible

As you can see, CP-the-framework already supports most
HTTP/1.1
features. Most of those features which it does not support
either
already have extensions for them, or one could easily be
written (ETag,
deflate, protocol checking, host validation).

If you don't need to support persistent connections or
requests of
unknown length, the builtin server should work just fine for
you.


Robert Brewer
System Architect
Amor Ministries
fumanchuamor.org

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the
Google Groups "cherrypy-users" group.
To post to this group, send email to cherrypy-usersgooglegroups.com
To unsubscribe from this group, send email to
cherrypy-users-unsubscribegooglegroups.com
For more options, visit this group at http://
groups.google.com/group/cherrypy-users
-~----------~----~----~----~------~----~------~--~---

[1]

about | contact  Other archives ( Real Estate discussion Medical topics )