An asynchronous HTTP/1 server and client implemenation.
This library provides the lower level parts of the HTTP/1.1 (and 1.0) spec. Specifically it concerns sending/receiving http requests and bodies over some unnamed transport. Which async runtime to use, TCP and TLS are handled outside this library.
Since HTTP/1.1 has no multiplexing, the HTTP headers
Transfer-Encoding are handled/enforced by this library to be able to correctly
delinate where a request starts/ends over the transport.
Content-Lengthfor known body sizes and ensuring the body size is correct.
Transfer-Encoding: chunkedwhen body size not known.
closeto handle HTTP/1.0 response delineation.
Basically everything which isn't about HTTP as "transport", i.e. application level logic.
- Following redirects
- Cookie handling
Content-Typecharacters sets, mime types.
The API tries to closely follow that of h2 so that a user of the library can make uniform handling of both HTTP/1.1 and HTTP/2.0.
Some connection must already have been established between client and server, this library does not perform socket connection.
Client implementation of the HTTP/1.1 protocol.
Server implementation of the HTTP/1.1 protocol.
Receives a body from the remote peer.
Send some body data to a remote peer.
Possible errors from this crate.