Events are the core of h11: the whole point of h11 is to let you
think about HTTP transactions as being a series of events sent back
and forth between a client and a server, instead of thinking in terms
of bytes.

All events behave in essentially similar ways. Let’s take
Request as an example. Like all events, this is a “final”
class – you cannot subclass it. And like all events, it has several
fields. For Request, there are four of them:
method, target,
headers, and
http_version. http_version
defaults to b"1.1"; the rest have no default, so to create a
Request you have to specify their values: