HTTP/2 서버
TsgcWebSocketHTTPServer를 통해 단일 TLS 포트에서 HTTP/2(h2)를 HTTP/1.1 및 WebSocket과 함께 제공해요. ALPN 협상, HPACK, 스트림 멀티플렉싱이 내장돼 있어요.
TsgcWebSocketHTTPServer를 통해 단일 TLS 포트에서 HTTP/2(h2)를 HTTP/1.1 및 WebSocket과 함께 제공해요. ALPN 협상, HPACK, 스트림 멀티플렉싱이 내장돼 있어요.
WebSocket 및 HTTP/1.1에 사용되는 동일한 TsgcWebSocketHTTPServer가 TLS를 통해 HTTP/2도 제공해요 — Specifications.HTTP2를 토글하면 ALPN이 나머지를 처리해요.
TsgcWebSocketHTTPServer
Windows, macOS, Linux, iOS, Android
Professional / Enterprise
TsgcWebSocketHTTPServer 인스턴스에서 TLS를 활성화하고 Specifications.HTTP2를 토글하세요 — ALPN h2 협상이 업그레이드를 자동으로 처리해요.
uses
sgcWebSocket;
var
Server: TsgcWebSocketHTTPServer;
begin
Server := TsgcWebSocketHTTPServer.Create(nil);
Server.Port := 443;
Server.SSL := True;
Server.SSLOptions.CertFile := 'cert.pem';
Server.SSLOptions.KeyFile := 'key.pem';
// Allow HTTP/1.1, HTTP/2 and WebSocket on the same port
Server.Specifications.HTTP := True;
Server.Specifications.HTTP2 := True;
Server.Specifications.RFC6455 := True;
Server.OnCommandGet := procedure(AContext: TIdContext;
ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo)
begin
AResponseInfo.ContentText := 'Hello over HTTP/' + IfThen(ARequestInfo.HTTP2, '2', '1.1');
end;
Server.Active := True;
end;
// uses: sgcWebSocket
TsgcWebSocketHTTPServer *Server = new TsgcWebSocketHTTPServer(this);
Server->Port = 443;
Server->SSL = true;
Server->Specifications->HTTP2 = true;
Server->Active = true;
HTTP/2가 활성화된 TsgcWebSocketHTTPServer — HTTP/1.1, HTTP/2, WebSocket 간에 하나의 TLS 엔드포인트를 공유해요.
TLS 핸드셰이크 중에 서버는 http/1.1과 h2를 모두 광고해요. 클라이언트가 프로토콜을 선택하면 서버가 그에 따라 디스패치해요 — 별도의 리스닝 소켓이 필요 없어요.
WebSocket 클라이언트는 여전히 HTTP/1.1 경로를 통해 업그레이드해요. RFC 8441(HTTP/2로 WebSocket 부트스트래핑)은 Specifications.RFC8441을 통해 지원돼요.
응답 헤더를 위한 내장 HPACK 인코더와 우선순위 힌트를 반영하여 각 요청을 자체 스트림 ID로 디스패치하는 스트림 멀티플렉싱 코어예요.
서버 푸시(PUSH_PROMISE)가 지원되지만 현재는 지원 중단됐어요 — 최신 클라이언트는 이를 무시해요. 힌트 대신 103 Early Hints 또는 HTTP/3을 고려하세요.
SSLOptions.IOHandler를 iohOpenSSL(크로스 플랫폼) 또는 iohSChannel(Windows)으로 설정하세요. HTTP/2는 RFC 7540 / 9113 배포에 따라 TLS 1.2+가 필요해요.
각 HTTP/2 연결은 OnHTTP2Settings를 통해 스트림 수, RTT 추정값, 총 입출력 바이트, 협상된 SETTINGS 프레임 매개변수를 노출해요.
컴포넌트 레퍼런스 링크, 즉시 실행 가능한 데모 프로젝트, 체험판 다운로드를 제공해요.
| 온라인 도움말 — TsgcWebSocketHTTPServer 이 컴포넌트의 전체 속성, 메서드, 이벤트 레퍼런스예요. | Open | |
| Demo Project — Demos\20.HTTP_Protocol\01.HTTP2_Server_And_Client 즉시 실행 가능한 예제 프로젝트예요. sgcWebSockets 패키지에 포함돼 있어요 — 아래에서 체험판을 다운로드하세요. | Open | |
| 기술 문서 (PDF) 이 컴포넌트의 기능, 빠른 시작, Delphi 및 C++ Builder 코드 샘플, 기본 출처 참조를 포함해요. | Open | |
| 사용자 매뉴얼 (PDF) 라이브러리의 모든 컴포넌트를 다루는 종합 매뉴얼이에요. | Open |