HTTP/3 Server
TsgcHTTP3Server — QUIC를 통해 요청을 처리하는 HTTP/3 서버(RFC 9114)입니다. TsgcQUICServer를 상속하며, UDP 포트를 바인딩하고, 인증서와 키를 로드하며, 요청마다 이벤트를 발생시킵니다. 서버 푸시, WebTransport 세션, 데이터그램을 지원하며 Delphi, C++ Builder, .NET에서 사용할 수 있습니다.
TsgcHTTP3Server — QUIC를 통해 요청을 처리하는 HTTP/3 서버(RFC 9114)입니다. TsgcQUICServer를 상속하며, UDP 포트를 바인딩하고, 인증서와 키를 로드하며, 요청마다 이벤트를 발생시킵니다. 서버 푸시, WebTransport 세션, 데이터그램을 지원하며 Delphi, C++ Builder, .NET에서 사용할 수 있습니다.
UDP 포트를 바인딩하고, PEM 인증서와 키를 로드한 다음, 각 요청을 OnH3Request에서 처리합니다. QPACK, 서버 푸시, WebTransport가 기본 내장되어 있습니다. 네이티브 OpenSSL 3.5 QUIC 엔진 기반입니다.
서버는 UDP 포트를 바인딩하고, 인증서와 키를 로드하며, 요청마다 OnH3Request를 발생시킵니다. WebTransport 세션은 OnWebTransportSession을 통해 도착합니다.
uses
sgcHTTP3_Server;
var
oServer: TsgcHTTP3Server;
begin
oServer := TsgcHTTP3Server.Create(nil);
oServer.Port := 443;
oServer.QUICOptions.SSLOptions.CertFile := 'cert.pem';
oServer.QUICOptions.SSLOptions.KeyFile := 'key.pem';
oServer.OnH3Request := OnH3RequestHandler; // fill the response here
oServer.Active := True;
end;
// includes: sgcHTTP3_Server.hpp
TsgcHTTP3Server *oServer = new TsgcHTTP3Server(NULL);
oServer->Port = 443;
oServer->QUICOptions->SSLOptions->CertFile = "cert.pem";
oServer->QUICOptions->SSLOptions->KeyFile = "key.pem";
oServer->OnH3Request = OnH3RequestHandler; // fill the response here
oServer->Active = true;
using esegece.sgcWebSockets;
var oServer = new TsgcHTTP3Server();
oServer.Port = 443;
oServer.QUICOptions.SSLOptions.CertFile = "cert.pem";
oServer.QUICOptions.SSLOptions.KeyFile = "key.pem";
oServer.OnH3Request += OnH3RequestHandler; // fill the response here
oServer.Active = true;
가장 자주 사용하게 되는 멤버.
Port와 Active가 UDP 리스너를 바인딩하고 해제합니다. 서버는 TsgcQUICServer를 상속합니다.
QUICOptions.SSLOptions.CertFile과 KeyFile이 TLS 1.3 핸드셰이크용 PEM 인증서와 개인 키를 로드합니다.
OnH3Request가 요청마다 파싱된 요청과 함께 발생합니다. 애플리케이션이 응답을 채우며, 핸들러 안에서 추가 응답을 푸시할 수도 있습니다.
OnH3TunnelData와 TunnelSend(aConnection, …)가 Extended CONNECT 터널을 구동하며, SendDatagram이 비신뢰성 데이터그램을 전송합니다.
OnWebTransportSession이 빌트인 엔진에서 자체 QUIC 스트림을 가진 WebTransport 세션(RFC 9220)을 전달합니다.
OnH3Connect, OnH3Disconnect, OnH3Exception이 연결 수명 주기와 오류를 알려줍니다.