TODO: Flesh me out Caveats: - No attempt is made to validate that the input for client requests or responses are valid according to the HTTP grammar; such cases will fail when rejected by the other party. - Details indicated by RFC 7230 et al as "obsolete" are not implemented