QAbstractHttpServer Class
API를 서브클래스에 추가하여 HTTP 서버를 구현합니다. 더 보기...
헤더: | #include <QAbstractHttpServer> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS HttpServer) target_link_libraries(mytarget PRIVATE Qt6::HttpServer) |
qmake: | QT += httpserver |
이후: | Qt 6.4 |
상속합니다: | QObject |
상속 대상: |
공용 함수
QAbstractHttpServer(QObject *parent = nullptr) | |
virtual | ~QAbstractHttpServer() override |
(since 6.8) void | addWebSocketUpgradeVerifier(const QObject *context, Handler &&func) |
bool | bind(QLocalServer *server) |
bool | bind(QTcpServer *server) |
(since 6.9) QHttpServerConfiguration | configuration() const |
bool | hasPendingWebSocketConnections() const |
(since 6.8) QHttp2Configuration | http2Configuration() const |
QList<QLocalServer *> | localServers() const |
std::unique_ptr<QWebSocket> | nextPendingWebSocketConnection() |
QList<quint16> | serverPorts() const |
QList<QTcpServer *> | servers() const |
(since 6.9) void | setConfiguration(const QHttpServerConfiguration &config) |
(since 6.8) void | setHttp2Configuration(const QHttp2Configuration &configuration) |
시그널
void | newWebSocketConnection() |
보호된 함수
virtual bool | handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
virtual void | missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder) = 0 |
상세 설명
이 클래스를 서브클래싱하고 handleRequest() 및 missingHandler()를 재정의하여 HTTP 서버를 생성합니다. bind ()를 사용하여 서버로 들어오는 모든 연결을 수신 대기하기 시작합니다.
이것은 낮은 수준의 API이며, HTTP 서버를 구현하는 상위 수준의 API는 QHttpServer 을 참조하세요.
멤버 함수 문서
[explicit]
QAbstractHttpServer::QAbstractHttpServer(QObject *parent = nullptr)
parent 을 부모로 하는 QAbstractHttpServer 인스턴스를 생성합니다.
[override virtual noexcept]
QAbstractHttpServer::~QAbstractHttpServer()
QAbstractHttpServer 의 인스턴스를 삭제합니다.
[since 6.8]
template <typename Handler> void QAbstractHttpServer::addWebSocketUpgradeVerifier(const QObject *context, Handler &&func)
들어오는 웹소켓 업그레이드를 확인하는 콜백 함수 func 를 추가합니다. 제공된 context 객체를 사용하여 호출됩니다. 등록된 콜백이 하나 이상 Accept 을 반환하고 이전 콜백이 Deny 을 반환하지 않으면 업그레이드가 성공합니다. 등록된 콜백이 없거나 모두 PassToNext 를 반환하면 missingHandler() 함수가 호출됩니다. 콜백은 등록된 순서대로 실행되며 이 함수를 직접 호출할 수는 없습니다.
참고: func 은 QHttpServerWebSocketUpgradeResponse (*)(const QHttpServerRequest &)
서명을 구현해야 합니다.
server.addWebSocketUpgradeVerifier( &server, [](const QHttpServerRequest &request) { if (request.url().path() == "/allowed"_L1) return QHttpServerWebSocketUpgradeResponse::accept(); else return QHttpServerWebSocketUpgradeResponse::passToNext(); });
이 함수는 Qt 6.8에 도입되었습니다.
QHttpServerRequest, QHttpServerWebSocketUpgradeResponse, hasPendingWebSocketConnections(), nextPendingWebSocketConnection(), newWebSocketConnection() 및 missingHandler()도 참조하세요 .
bool QAbstractHttpServer::bind(QLocalServer *server)
전송이 이루어지는 QLocalServer server 을 HTTP 서버에 바인딩합니다. 여러 연결을 처리하기 위해 server 의 다른 인스턴스를 사용하여 이 함수를 여러 번 호출할 수 있습니다.
이 함수를 호출하면 모든 새 연결이 HTTP 서버에 의해 처리되고 전달됩니다.
이 함수를 호출하기 전에 server 에서 QLocalServer::listen()를 호출하는 것은 사용자의 책임입니다. server 이 수신 대기 중이 아니라면 아무 일도 일어나지 않고 false
이 반환됩니다.
server 가 nullptr이면 false가 반환됩니다.
성공하면 server 이 HTTP 서버에 부모가 되고 true
이 반환됩니다.
QLocalServer 및 QLocalServer::listen()도 참조하세요 .
bool QAbstractHttpServer::bind(QTcpServer *server)
전송이 이루어지는 지정된 TCP server 를 HTTP 서버에 바인딩합니다. 이 함수는 여러 연결과 포트(예: SSL 연결과 비암호화 연결 모두)를 처리하기 위해 서로 다른 TCP server 인스턴스를 사용하여 여러 번 호출할 수 있습니다.
이 함수를 호출하면 모든 새 연결이 HTTP 서버에 의해 처리되고 전달됩니다.
이 함수를 호출하기 전에 server 에서 QTcpServer::listen()를 호출하는 것은 사용자의 책임입니다. server 이 수신 대기 중이 아니라면 아무 일도 일어나지 않고 false
이 반환됩니다.
성공하면 server 이 HTTP 서버에 부모가 되고 true
이 반환됩니다.
HTTP 2를 사용하려면 QSslConfiguration::setAllowedNextProtocols()가 호출된 QSslServer 에 인자 { QSslConfiguration::ALPNProtocolHTTP2 }
를 사용하여 바인딩합니다.
QTcpServer, QTcpServer::listen() 및 QSslConfiguration::setAllowedNextProtocols()도 참조하세요 .
[since 6.9]
QHttpServerConfiguration QAbstractHttpServer::configuration() const
이 서버의 일반 구성 파라미터를 반환합니다.
이 함수는 Qt 6.9에 도입되었습니다.
setConfiguration()도 참조하세요 .
[pure virtual protected]
bool QAbstractHttpServer::handleRequest(const QHttpServerRequest &request, QHttpServerResponder &responder)
이 함수를 재정의하여 request 을 검사하고 적절한 응답을 responder 으로 다시 전송하여 수신되는 각 request 을 처리합니다. request 이 성공적으로 처리되면 true
을 반환합니다. 이 메서드가 false
를 반환하면 missingHandler()가 나중에 호출됩니다.
bool QAbstractHttpServer::hasPendingWebSocketConnections() const
서버에 대기 중인 웹소켓 연결이 있으면 true
을 반환하고, 그렇지 않으면 false
을 반환합니다.
newWebSocketConnection(), nextPendingWebSocketConnection() 및 addWebSocketUpgradeVerifier()도 참조하세요 .
[since 6.8]
QHttp2Configuration QAbstractHttpServer::http2Configuration() const
서버의 HTTP/2 설정 파라미터를 반환합니다.
이 함수는 Qt 6.8에 도입되었습니다.
setHttp2Configuration()도 참조하세요 .
QList<QLocalServer *> QAbstractHttpServer::localServers() const
이 HTTP 서버의 로컬 서버를 반환합니다.
serverPorts()도 참조하세요 .
[pure virtual protected]
void QAbstractHttpServer::missingHandler(const QHttpServerRequest &request, QHttpServerResponder &responder)
이 함수를 재정의하여 handleRequest()에서 처리하지 않은 각 수신 request 을 처리합니다. 이 함수는 handleRequest()가 false
을 반환하거나 웹소켓 업그레이드 시도가 있고 newWebSocketConnection()에 연결이 없거나 일치하는 웹소켓 검증자가 없는 경우 호출됩니다. request 및 responder 매개 변수는 handleRequest()가 호출된 경우와 동일합니다.
handleRequest() 및 addWebSocketUpgradeVerifier()도 참조하세요 .
[signal]
void QAbstractHttpServer::newWebSocketConnection()
이 신호는 새로운 웹소켓 연결을 사용할 수 있을 때마다 발생합니다.
hasPendingWebSocketConnections(), nextPendingWebSocketConnection() 및 addWebSocketUpgradeVerifier()도 참조하세요 .
std::unique_ptr<QWebSocket> QAbstractHttpServer::nextPendingWebSocketConnection()
다음 보류 중인 연결을 연결된 QWebSocket 객체로 반환합니다. 보류 중인 연결이 없을 때 이 함수를 호출하면 nullptr
객체가 반환됩니다.
참고: 반환된 QWebSocket 객체는 다른 스레드에서 사용할 수 없습니다.
newWebSocketConnection(), hasPendingWebSocketConnections() 및 addWebSocketUpgradeVerifier()도 참조하세요 .
QList<quint16> QAbstractHttpServer::serverPorts() const
QAbstractHttpServer 인스턴스가 수신 중인 포트 목록을 반환합니다.
이 함수는 QObject::children 와 동일한 보증을 가지며, 가장 최근에 추가된 서버가 벡터의 마지막 항목입니다.
servers()도 참조하세요 .
QList<QTcpServer *> QAbstractHttpServer::servers() const
이 HTTP 서버가 연결을 처리할 TCP 및 SSL 서버를 반환합니다.
serverPorts()도 참조하세요 .
[since 6.9]
void QAbstractHttpServer::setConfiguration(const QHttpServerConfiguration &config)
이 서버의 일반 구성 매개변수를 config 로 설정합니다.
참고: 새 구성은 이미 설정된 연결과 다음 연결에 모두 적용됩니다.
이 기능은 Qt 6.9에 도입되었습니다.
configuration()도 참조하세요 .
[since 6.8]
void QAbstractHttpServer::setHttp2Configuration(const QHttp2Configuration &configuration)
서버의 HTTP/2 구성 매개변수를 설정합니다.
다음 HTTP/2 연결은 주어진 configuration 을 사용합니다.
이 함수는 Qt 6.8에 도입되었습니다.
http2Configuration()도 참조하세요 .
© 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.