After much discussion, the WSGI community has mostly agreed that applications should not treat GET and HEAD requests differently. The HTTP specification practically demands that they are handled the same way by applications, with the exception that responses to HEAD requests do not send a body. When they are handled differently, there is an unfortunate tendency to over-optimize the HEAD request, causing discrepancies between the headers it returns and those returned by GET. Further, WSGI middleware may need access to the response body in order to properly manipulate the response (e.g. to rewrite links, etc.), which could effect the response to HEAD requests as well. This commit changes the behavior of `BaseApplication` to change the method of all `HEAD` requests to `GET` prior to dispatching them. `Request` objects now have a `real_method` attribute, which indicates the original method of the request. http://blog.dscpl.com.au/2009/10/wsgi-issues-with-http-head-requests.html |
||
---|---|---|
.settings | ||
doc | ||
src/milla | ||
test | ||
.gitignore | ||
.hgignore | ||
.hgtags | ||
.project | ||
.pydevproject | ||
COPYING | ||
MANIFEST.in | ||
README.rst | ||
distribute_setup.py | ||
milla.svg | ||
setup.cfg | ||
setup.py |
README.rst
.. vim: set ft=rst : ===== Milla ===== *Milla* is a simple and lightweight web framework for Python. It built on top of `WebOb`_ and thus implements the `WSGI`_ standard. It aims to be easy to use while imposing no restrictions, allowing web developers to write code the way they want, using the tools, platform, and extensions they choose. To get started using *Milla* right away, visit `Downloads`_ to get the latest version, then read the `Documentation`_. Example ======= .. code:: python from wsgiref import simple_server from milla.dispatch import routing import milla def hello(request): return 'Hello, world!' router = routing.Router() router.add_route('/', hello) app = milla.Application(router) httpd = simple_server.make_server('', 8080, app) httpd.serve_forever() .. _WebOb: http://webob.org/ .. _WSGI: http://wsgi.readthedocs.org/ .. _Downloads: https://bitbucket.org/AdmiralNemo/milla/downloads .. _Documentation: http://milla.readthedocs.org/