HTTP/3 Client
TsgcHTTP3Client — HTTP/3 클라이언트(RFC 9114)로, QPACK 헤더 압축, Alt-Svc 검색, 서버 푸시, Extended CONNECT 터널, WebTransport 세션과 함께 QUIC를 통해 요청을 전송합니다. 익숙한 HTTP 시맨틱을 새로운 전송 계층에서, Delphi, C++ Builder, .NET으로 사용할 수 있습니다.
TsgcHTTP3Client — HTTP/3 클라이언트(RFC 9114)로, QPACK 헤더 압축, Alt-Svc 검색, 서버 푸시, Extended CONNECT 터널, WebTransport 세션과 함께 QUIC를 통해 요청을 전송합니다. 익숙한 HTTP 시맨틱을 새로운 전송 계층에서, Delphi, C++ Builder, .NET으로 사용할 수 있습니다.
호스트와 포트에 연결한 다음, 이미 사용하던 메서드로 요청을 보냅니다. QPACK, Alt-Svc, 푸시, WebTransport는 메서드와 이벤트로 노출됩니다. 네이티브 OpenSSL 3.5 QUIC 엔진 기반입니다.
호스트와 포트에 연결한 다음 요청을 보냅니다. 기본 포트는 443입니다. 헤더는 QPACK으로 압축되며, OnAltSvc는 HTTP/3가 알려질 때 알려줍니다.
uses
sgcHTTP3_Client;
var
oClient: TsgcHTTP3Client;
vBody: string;
begin
oClient := TsgcHTTP3Client.Create(nil);
oClient.OnResponse := OnResponseHandler;
oClient.OnAltSvc := OnAltSvcHandler;
oClient.Connect('www.example.com', 443);
vBody := oClient.Get('https://www.example.com/'); // QPACK-compressed request
oClient.Disconnect;
end;
// WebTransport session over HTTP/3 (RFC 9220):
oClient.WebTransportConnect('https://www.example.com/wt');
// includes: sgcHTTP3_Client.hpp
TsgcHTTP3Client *oClient = new TsgcHTTP3Client(NULL);
oClient->OnResponse = OnResponseHandler;
oClient->OnAltSvc = OnAltSvcHandler;
oClient->Connect("www.example.com", 443);
String vBody = oClient->Get("https://www.example.com/"); // QPACK-compressed request
oClient->Disconnect();
// WebTransport session over HTTP/3 (RFC 9220):
oClient->WebTransportConnect("https://www.example.com/wt");
using esegece.sgcWebSockets;
var oClient = new TsgcHTTP3Client();
oClient.OnResponse += OnResponseHandler;
oClient.OnAltSvc += OnAltSvcHandler;
oClient.Connect("www.example.com", 443);
var vBody = oClient.Get("https://www.example.com/"); // QPACK-compressed request
oClient.Disconnect();
// WebTransport session over HTTP/3 (RFC 9220):
oClient.WebTransportConnect("https://www.example.com/wt");
가장 자주 사용하게 되는 멤버.
Get, Head, Post, Put, Delete 및 그 외 메서드(IETF QUERY 메서드 포함)는 블로킹 호출로 동작하며, 대부분 비동기 버전도 있습니다.
Connect(aHost, aPort)와 Disconnect가 QUIC 연결을 열고 닫습니다. Host와 Port는 현재 대상을 알려줍니다.
OnAltSvc는 HTTP/3 가용성을 알려주며, SetMaxPushId, OnPushPromise, OnPush가 서버 푸시를 제어합니다.
ExtendedConnect, TunnelSend, OnTunnelData가 RFC 9220 터널을 구동하며, WebTransportConnect가 WebTransport 세션을 엽니다.
UserAgent, ConnectTimeout, ReadTimeout, MaxResponseSize로 클라이언트를 조정합니다.
OnResponse, OnError, OnConnect, OnDisconnect, OnGoAway가 응답과 연결 수명 주기를 알려줍니다.