Qt HTTP Server
Qt HTTP Server 는 애플리케이션에 HTTP 서버 기능을 구축하는 것을 지원합니다. 일반적인 사용 사례는 REST API를 통해 애플리케이션의 기능을 노출하거나 신뢰할 수 있는 환경의 디바이스를 HTTP를 통해서도 구성할 수 있도록 만드는 것입니다. 제한 사항은 제한 사항 및 보안에 설명되어 있습니다.
개요
Qt HTTP Server 는 애플리케이션에 RFC 2616 기반의 경량 HTTP 서버를 임베드하기 위한 빌딩 블록을 제공합니다. 주고받는 메시지와 HTTP 서버의 다양한 부분에 대한 클래스가 있습니다.
QAbstractHttpServer 클래스를 서브클래싱하고 handleRequest() 함수를 재정의하여 HTTP 서버를 생성할 수 있습니다. QAbstractHttpServer 클래스는 기존 QTcpServer, QSslServer, 또는 QLocalServer 에 바인딩하기 위한 함수를 제공합니다. 들어오는 URL을 기반으로 콜러블에 디스패치하는 작업은 QHttpServerRouter 클래스를 사용하여 간소화할 수 있습니다.
QHttpServer 클래스를 사용하면 이 작업을 더욱 단순화할 수 있습니다. QHttpServer 클래스는 QAbstractHttpServer 의 하위 클래스이며 콜러블을 다른 수신 URL에 바인딩하는 오버로드된 라우팅 함수와 응답을 추가로 처리하는 addAfterRequestHandler() 함수를 정의합니다.
런타임 로깅은 여기에 설명된 대로 구성할 수 있습니다.
제한 및 보안
Qt HTTP Server 에는 범용 HTTP 서버에 있는 고급 기능 및 최적화 기능이 많지 않습니다. 또한 네트워크를 통한 다양한 공격 경로에 대한 면밀한 조사가 이루어지지 않았습니다. 따라서 Qt HTTP Server 은 로컬 연결이나 신뢰할 수 있는 네트워크에서만 사용하고 포트를 인터넷에 노출하지 마세요.
하지만 기본 보안 조치로 HTTPS 지원을 추가할 수 있습니다. Qt가 TLS를 지원하도록 컴파일된 경우, QAbstractHttpServer 및 그 서브클래스를 QSslServer 객체에 바인딩하여 전송 계층 보안 처리를 제공할 수 있습니다.
모듈 사용하기
Qt 모듈을 사용하려면 모듈 라이브러리에 직접 또는 다른 종속성을 통해 링크해야 합니다. CMake 및 qmake를 비롯한 여러 빌드 도구가 이를 지원합니다.
CMake로 빌드하기
find_package()
명령을 사용하여 Qt6 패키지에서 필요한 모듈 컴포넌트를 찾습니다:
find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer)
CMake로 빌드 개요를 참조하세요.
qmake로 빌드하기
qmake로 빌드하도록 모듈을 구성하려면 프로젝트의 .pro 파일에서 모듈을 QT 변수의 값으로 추가합니다:
QT += httpserver
라이선스
Qt HTTP Server 는 Qt Company의 상용 라이센스에 따라 사용할 수 있습니다. 또한 GNU 일반 공중 사용 허가서 버전 3에 따라 사용할 수 있습니다. 자세한 내용은 Qt 라이선스를 참조하십시오.
참조
예제
이 모듈은 API 사용에 대한 가이드로 다음 예제를 제공합니다.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.