TCP + TLS: 왕복 3회
SYN, SYN-ACK, ACK로 소켓을 열어요. ClientHello, ServerHello, Finished로 TLS를 설정해요. 그제서야 첫 요청이 나가요.
TCP와 TLS는 응답의 첫 바이트가 도착하기까지 왕복 3회가 필요해요. QUIC는 전송 계층과 암호화 핸드셰이크를 하나로 합치고, 재개된 연결은 첫 번째 패킷에서 곧바로 데이터를 보낼 수 있어요. sgcQUIC는 Delphi, C++ Builder, .NET에 네이티브 QUIC 전송과 그 위에 구축된 HTTP/3 클라이언트 및 서버를 제공하며, OpenSSL 3.5 QUIC 엔진 위에서 동작해요.
sgcWebSockets Enterprise의 애드온이에요. 가격 보기 →TCP에서는 전송 계층 핸드셰이크, TLS 핸드셰이크, 첫 요청이 각각 한 번의 왕복을 써요. QUIC는 이 셋을 한 번의 교환에 담아요.
SYN, SYN-ACK, ACK로 소켓을 열어요. ClientHello, ServerHello, Finished로 TLS를 설정해요. 그제서야 첫 요청이 나가요.
QUIC는 전송 계층과 암호화 핸드셰이크를 한 번의 교환으로 합쳐요. 그래서 요청이 핸드셰이크와 함께 가고, 응답도 함께 돌아와요.
이전에 연결한 적이 있는 클라이언트는 핸드셰이크가 끝나기도 전에, 바로 첫 번째 패킷에 첫 요청을 실어 보낼 수 있어요.
해설과 자막이 있는 퀵스타트예요. HTTP/3 서버와 클라이언트를 만들고, 여러 스트림이 있는 원시 QUIC 연결을 열어요. 재생을 누르기 전에는 아무것도 다운로드되지 않아요.
Delphi에서 HTTP/3 서버와 클라이언트를 실행하고, 원시 QUIC 연결을 열어요.
직접 프레이밍을 다루는 순수 전송에는 TsgcQUICClient 와 TsgcQUICServer 를, 와이어 포맷이 HTTP라면 곧바로 TsgcHTTP3Client 와 TsgcHTTP3Server 를 사용하세요.
TsgcQUICClient 와 TsgcQUICServer 는 순수 QUIC를 다뤄요. 암호화된 연결 하나에 여러 개의 독립적인 스트림, 신뢰성 없는 데이터그램, 그리고 클라이언트의 IP 주소가 세션 도중 바뀌어도 유지되는 연결 마이그레이션을 제공해요.
TsgcHTTP3Client 와 TsgcHTTP3Server 는 그 위에 HTTP 시맨틱을 얹어요. QPACK으로 압축된 요청 및 응답 헤더, Alt-Svc 검색, 그리고 기존 HTTP/2 코드가 이미 사용하는 것과 동일한 메서드와 상태 코드를 제공해요.
이전에 연결한 적이 있는 클라이언트는 핸드셰이크가 끝나기도 전에, 바로 첫 번째 패킷에 첫 요청을 실어 보낼 수 있어요.
연결 ID가 IP 주소 대신 세션을 식별하므로, 휴대폰이 Wi-Fi에서 셀룰러로 옮겨가도 스트림은 계속 열려 있어요.
WebTransport를 지원하는 브라우저 클라이언트를 위해, Extended CONNECT 요청 하나로 양방향 스트림과 신뢰성 없는 데이터그램을 제공해요.
QUIC와 TLS 1.3 핸드셰이크는 OpenSSL 3.5 자체의 QUIC 엔진 위에서 실행돼요. 따로 빌드하거나 벤더링할 QUIC 라이브러리가 없어요.
sgcQUIC는 부분적인 구현이 아니에요. 전송, 프레이밍, 헤더 압축, WebTransport 확장까지 모두 다루며, 네이티브 OpenSSL 3.5 QUIC 엔진 위에서 동작해요.
QUIC 전송 프로토콜이에요. 스트림, 데이터그램, 흐름 제어, 연결 마이그레이션을 다뤄요.
HTTP/3는 HTTP/2와 동일한 요청 및 응답 시맨틱을 QUIC 스트림 위에 실어요.
QUIC의 순서 없는 스트림 전달에 맞게 설계된 QPACK 헤더 압축이에요.
HTTP/3 위의 WebTransport로, Extended CONNECT 요청 하나로 양방향 스트림과 데이터그램을 제공해요.
다른 sgcWebSockets HTTP 클라이언트와 같은 형태예요. 속성을 설정하고, 이벤트를 처리하고, 메서드를 호출하세요. 서버 쪽은 컴포넌트 하나와 핸들러 하나로 끝나요.
uses
sgcHTTP3_Client;
var
vClient: TsgcHTTP3Client;
begin
vClient := TsgcHTTP3Client.Create(nil);
vClient.Host := 'api.example.com';
vClient.Port := 443;
vClient.OnResponse :=
procedure(Sender: TObject; const AStatus: Integer; const ABody: string)
begin
Memo1.Lines.Add(Format('%d: %s', [AStatus, ABody]));
end;
vClient.OnAltSvc :=
procedure(Sender: TObject; const AAltSvc: string)
begin
Memo1.Lines.Add('Alt-Svc: ' + AAltSvc); // h3 advertised over HTTP/2
end;
vClient.Connect;
vClient.Get('/pets/42');
end;
uses
sgcQUIC_Client;
var
vQUIC: TsgcQUICClient;
begin
vQUIC := TsgcQUICClient.Create(nil);
vQUIC.Host := 'quic.example.com';
vQUIC.Port := 4433;
vQUIC.EnableMultiStream := True;
vQUIC.OnQUICConnect :=
procedure(Sender: TObject)
var
vStreamId: Int64;
begin
vStreamId := vQUIC.OpenStream;
vQUIC.WriteData(vStreamId, 'ping');
end;
vQUIC.OnQUICStreamData :=
procedure(Sender: TObject; const AStreamId: Int64; const AData: string)
begin
Memo1.Lines.Add(Format('stream %d: %s', [AStreamId, AData]));
end;
vQUIC.Active := True;
end;
uses
sgcHTTP3_Server;
procedure TForm1.FormCreate(Sender: TObject);
begin
FServer := TsgcHTTP3Server.Create(nil);
FServer.Port := 443;
FServer.QUICOptions.SSLOptions.CertFile := 'server.crt';
FServer.QUICOptions.SSLOptions.KeyFile := 'server.key';
// One handler for every incoming HTTP/3 request
FServer.OnH3Request :=
procedure(const Ctx: TsgcHTTP3Context)
begin
if Ctx.Path = '/pets/42' then
Ctx.RespondJSON(200, '{"name":"Rex"}')
else
Ctx.Respond(404, 'Not found');
end;
FServer.Active := True;
end;
클라이언트와 서버는 양쪽에서 동일한 연결, 스트림, 데이터그램 모델을 공유해요. 전체 기능 매트릭스 보기 →
라이선스, 지원 채널, 업데이트 주기는 이미 갖고 계신 그대로예요. 모든 라이선스에는 전체 소스 코드, 1년간의 업데이트, 로열티 없는 배포가 포함돼요.
개발자 1명 라이선스예요. 한 번에 한 대의 컴퓨터에서 사용해요.
개발자 2명 라이선스예요. 한 번에 두 대의 컴퓨터에서 사용해요.
개발자 수 제한이 없어요. 회사의 모든 컴퓨터에서 사용해요.
sgcQUIC에는 sgcWebSockets Enterprise가 필요하며, 같은 주문에 함께 추가할 수 있어요. Delphi, C++ Builder, .NET용 QUIC 클라이언트와 서버, HTTP/3 클라이언트와 서버, QPACK, Alt-Svc, WebTransport가 포함돼요.
가격 및 에디션 보기전 세계 Delphi, C++ Builder, Lazarus 및 .NET 개발자가 신뢰해요.
sgcWebSockets 라이브러리는 정말 유용하고 설정하기 쉬워요. 앞으로도 좋은 작업 부탁드려요!
sgcWebSockets는 정말 훌륭하고 지원도 최고예요!
도움과 지원에 정말 감사드려요. 컴포넌트가 너무 마음에 들어요.
원시 QUIC 전송, HTTP/3 클라이언트 및 서버, 그리고 WebTransport를 OpenSSL 3.5 QUIC 엔진 위에서 제공해요. sgcWebSockets Enterprise의 애드온으로, 전체 소스와 로열티 없는 배포가 함께해요.
sgcQUIC는 Delphi, C++ Builder, .NET용 다른 eSeGeCe 컴포넌트 라이브러리와 같은 규칙을 공유해요. 전체 소스와 함께 제공되며, 로열티 없이 배포할 수 있어요.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI 및 30개 이상의 API 통합을 제공해요. sgcQUIC가 기반으로 삼는 Enterprise 라이선스예요.
Bootstrap 5와 htmx 기반의 서버 사이드 HTML 및 UI 컴포넌트예요. 렌더링된 UI를 동일한 HTTP/3 전송으로 서비스하세요.
Delphi와 C++ Builder를 위한 AI, LLM, MCP 컴포넌트예요. 컴포넌트 하나로 일곱 개 LLM 제공업체를 사용하고, MCP와 임베딩, 음성까지 지원해요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.
Delphi와 C++ Builder를 위한 MQTT, AMQP 0.9.1과 1.0, Apache Kafka, STOMP 클라이언트 컴포넌트예요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.
Delphi와 C++ Builder용 OAuth2 클라이언트, JWT 클라이언트, WebAuthn 지원이에요. 독립형이며 sgcWebSockets Core 런타임이 포함돼요.
Delphi와 C++ Builder를 위한 HTTP 서버, HTTP/2 클라이언트, gRPC 클라이언트, 그리고 Google Cloud Pub/Sub, Calendar, FCM 클라이언트를 제공해요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.
Delphi와 C++ Builder용 REST 서버, OpenAPI 서버, OpenAPI 클라이언트 컴포넌트예요. 독립형이며 sgcWebSockets Core 런타임이 포함돼요.
OpenAPI 3.x 파서, 네이티브 Pascal SDK 생성기, OpenAPI 서버 컴포넌트, 그리고 1,195개 이상의 사전 빌드 클라우드 SDK를 제공해요.
문서에는 XAdES, PAdES, CAdES, ASiC를, 코드에는 Authenticode, ClickOnce, NuGet, VSIX를 제공해요.
PDF 파일을 만들고, 편집하고, 보고, 서명하고, 가리고, 검증하는 기능을 순수 Object Pascal로 제공해요. 배포할 DLL이 없고, 별도로 라이선스돼요.
Delphi와 C++ Builder를 위한 Windows Hello, 지문 센서, Windows Biometric Framework를 제공해요.
Delphi 7부터 13까지 최신 TLS, IPv6, HTTP/2를 갖춘 업데이트된 Indy TCP/IP 컴포넌트예요.