File: wsgi-example.rst

package info (click to toggle)
python-h2 4.2.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 3,652 kB
  • sloc: python: 11,141; makefile: 14; sh: 12
file content (31 lines) | stat: -rw-r--r-- 1,113 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Example HTTP/2-only WSGI Server
===============================

This example is a more complex HTTP/2 server that acts as a WSGI server,
passing data to an arbitrary WSGI application. This example is written using
`asyncio`_. The server supports most of PEP-3333, and so could in principle be
used as a production WSGI server: however, that's *not recommended* as certain
shortcuts have been taken to ensure ease of implementation and understanding.

The main advantages of this example are:

1. It properly demonstrates HTTP/2 flow control management.
2. It demonstrates how to plug h2 into a larger, more complex
   application.


.. literalinclude:: ../../examples/asyncio/wsgi-server.py
   :language: python
   :linenos:
   :encoding: utf-8


You can use ``cert.crt`` and ``cert.key`` files provided within the repository
or generate your own certificates using `OpenSSL`_:

.. code-block:: console

   $ openssl req -x509 -newkey rsa:2048 -keyout cert.key -out cert.crt -days 365 -nodes

.. _asyncio: https://docs.python.org/3/library/asyncio.html
.. _OpenSSL: https://openssl-library.org/source/index.html