drogonframework / drogon

Drogon: A C++14/17/20 based HTTP web application framework running on Linux/macOS/Unix/Windows
MIT License
11.61k stars 1.12k forks source link

HTTP/2 compatiablity tracker #2037

Open marty1885 opened 5 months ago

marty1885 commented 5 months ago

This issue is used to track our HTTP/2 client's compatibility. Please comment here which endpoint(s) you are using so we can collect a list of know compatible endpoints. This issues will be closed upon HTTP/2 leaving beta. Currently known working hosts:

nqf commented 5 months ago

Did I use it wrong?

export SSL_CERT_FILE=/etc/ssl/certs/ca-certificates.crt

    auto client = HttpClient::newHttpClient("https://www.google.com");
    auto req = HttpRequest::newHttpRequest();
    client->sendRequest(
        req, [](ReqResult result, const HttpResponsePtr& response) {
            if (result != ReqResult::Ok) {
                std::cout
                    << "error while sending request to server! result: "
                    << result << std::endl;
                return;
            }

            std::cout << "receive response!:" << response->getBody() << std::endl;
        });

error while sending request to server! result: Bad response from server
marty1885 commented 5 months ago

@nqf Ohh yeah... there 0is a bug in the HPACK decoder that fails to decode what we get from google.com. Let me debug it...

Update: The issue seems to be me not handling setting max table list size.. Checking the RFC

marty1885 commented 5 months ago

@nqf Can you try #2045 ? I fixed it and confirmed it works on my machine. Turns our the issue is an unexpected empty path.

nqf commented 5 months ago

@marty1885 thanks, Confirmed that it can work