Skip to main content

WSGI request and response object

Project description Documentation Status

WebOb provides objects for HTTP requests and responses. Specifically it does this by wrapping the WSGI request environment and response status/headers/app_iter(body).

The request and response objects provide many conveniences for parsing HTTP request and forming HTTP responses. Both objects are read/write: as a result, WebOb is also a nice way to create HTTP requests and parse HTTP responses.

Support and Documentation

See the WebOb Documentation website to view documentation, report bugs, and obtain support.


WebOb is offered under the MIT-license.


WebOb was authored by Ian Bicking and is currently maintained by the Pylons Project and a team of contributors.

1.7.1 (2017-01-16)


  • Response.__init__ would discard app_iter when a Response had no body, this would cause issues when app_iter was an object that was tied to the life-cycle of a web application and had to be properly closed. app_iter is more advanced API for Response and thus even if it contains a body and is thus against the HTTP RFC’s, we should let the users shoot themselves by returning a body. See

1.7.0 (2016-12-22)


  • WebOb is no longer supported on Python 2.6 and PyPy3 (due to pip no longer supporting Python 3.2 even on PyPy)

Backwards Incompatibility

  • Response.content_type removes all existing Content-Type parameters, and if the new Content-Type is “texty” it adds a new charset (unless already provided) using the default_charset. See

  • Response.set_cookie no longer accepts a key argument. This was deprecated in WebOb 1.5 and as mentioned in the deprecation, is being removed in 1.7

  • Response.__init__ will no longer set the default Content-Type, nor Content-Length on Responses that don’t have a body. This allows WebOb to return proper responses for things like Response(status=’204 No Content’).

  • Response.text will no longer raise if the Content-Type does not have a charset, it will fall back to using the new default_body_encoding`. To get the old behaviour back please sub-class ``Response and set default_body_encoding to None. See

  • WebOb no longer supports Chunked Encoding, this means that if you are using WebOb and need Chunked Encoding you will be required to have a proxy that unchunks the request for you. Please read for more background.



Project details

Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

WebOb-1.7.1.tar.gz (215.5 kB view hashes)

Uploaded Source

Built Distribution

WebOb-1.7.1-py2.py3-none-any.whl (83.3 kB view hashes)

Uploaded Python 2 Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page