make menuconfig를 사용하여 OpenWrt 이미지를 컴파일할 때 libcurl 상자를 확인한 다음 HTTP/2 지원을 추가하는 상자를 선택하고 nghttp2 라이브러리도 선택되어 있는지 확인합니다. 요청을 수행하는 코드에서 CURLOPT_HTTP_VERSION을 CURL_HTTP_VERSION_2_PRIOR_KNOWLEDGE로 설정했습니다. 서버가 모든 브라우저 요청에 대해 HTTP/2를 사용하고 https를 사용하기 때문입니다.
테스트를 위해 HTTP/2를 지원하는 Ubuntu 시스템에서 컬을 컴파일하고 OpenWrt에서 요청하는 것과 동일한 URL에 POST 요청을 했으며 요청에는 HTTP/2가 사용되었습니다. OpenWrt의 HTTP/2에 문제가 있다고 알려진 것이 있나요? 아니면 다른 사람들이 겪고 해결한 문제인가요? 유용한 디버그 데이터가 없습니다. 이미 모든 것을 파헤쳐 봤고 약간 당황스럽습니다.
유용할 경우를 대비하여 TLS/SSL 백엔드로 mbedTLS를 사용하고 있습니다.
추가 정보로 편집됨: 이 스니펫을 실행했습니다.
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_HTTP2);
인쇄한 0
후 다음을 실행했습니다.
printf("%d\n", curl_version_info(CURLVERSION_NOW)->features & CURL_VERSION_SSL);
그리고 그것은 인쇄되었습니다 4
. 따라서 libcurl을 포함하고 http2 지원을 확인하고 SSL 지원을 확인하여 이미지를 컴파일하더라도 실제로는 SSL만 포함됩니다. 그러나 .so
mbedtls 및 libnghttp2 모두에 대한 이 있습니다 .
이에 대한 도움이 도움이 될 것입니다.