eSeGeCe — komponenty komunikacyjne klasy enterprise dla Delphi i .NET
WYRÓŻNIONE · sgcQUIC

Pomiń rundy

TCP wraz z TLS potrzebuje trzech rund, zanim dotrze pierwszy bajt odpowiedzi. QUIC łączy handshake transportu i kryptograficzny w jeden przelot, a wznowione połączenie może wysłać dane już w pierwszym pakiecie. sgcQUIC daje Delphi, C++ Builder i .NET natywny transport QUIC oraz zbudowany na nim klient i serwer HTTP/3, na silniku QUIC OpenSSL 3.5.

  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT i migracja połączenia
  • Delphi · C++ Builder · .NET

QUIC i HTTP/3, zgodnie z literą RFC

sgcQUIC to nie częściowa implementacja. Transport, ramkowanie, kompresja nagłówków i rozszerzenie WebTransport są w pełni obsługiwane, na bazie natywnego silnika QUIC OpenSSL 3.5.

4 Komponenty TsgcQUICClient, TsgcQUICServer, TsgcHTTP3Client i TsgcHTTP3Server, jedna strona palety.
9000 RFC 9000 Protokół transportowy QUIC: strumienie, datagramy, kontrola przepływu i migracja połączenia.
9114 RFC 9114 HTTP/3, ta sama semantyka żądań i odpowiedzi co w HTTP/2, przenoszona przez strumienie QUIC.
9204 RFC 9204 Kompresja nagłówków QPACK, zaprojektowana z myślą o dostarczaniu strumieni QUIC poza kolejnością.
9220 RFC 9220 WebTransport nad HTTP/3, dwukierunkowe strumienie i datagramy w ramach jednego żądania Extended CONNECT.
sgcQUIC

Surowy transport QUIC oraz klient i serwer HTTP/3 dla Delphi, C++ Builder i .NET. Dodatek do sgcWebSockets Enterprise, na tym samym natywnym silniku QUIC OpenSSL 3.5. Pełny kod źródłowy, wdrożenie bez opłat licencyjnych.

Surowy QUIC, albo HTTP/3 na wierzchu

Użyj TsgcQUICClient i TsgcQUICServer do surowego transportu z własnym ramkowaniem, albo sięgnij od razu po TsgcHTTP3Client i TsgcHTTP3Server, gdy format ramki to HTTP.

RFC 9000

Klient i serwer QUIC

TsgcQUICClient i TsgcQUICServer mówią surowym QUIC: wiele niezależnych strumieni na jednym szyfrowanym połączeniu, niepewne datagramy oraz migracja połączenia, gdy adres IP klienta zmienia się w trakcie sesji.

Zobacz komponenty QUIC →
RFC 9114

Klient i serwer HTTP/3

TsgcHTTP3Client i TsgcHTTP3Server nakładają semantykę HTTP: nagłówki żądań i odpowiedzi kompresowane przez QPACK, wykrywanie Alt-Svc oraz te same metody i kody stanu, których już używa twój kod HTTP/2.

Zobacz komponenty HTTP/3 →
0-RTT

Wznowienie sesji

Klient, który łączył się wcześniej, może wysłać pierwsze żądanie już w pierwszym pakiecie, zanim handshake się zakończy.

Migracja

Migracja połączenia

Connection ID identyfikuje sesję, a nie adres IP, dzięki czemu telefon przechodzący z Wi-Fi na dane mobilne zachowuje otwarte strumienie.

WebTransport

RFC 9220

Dwukierunkowe strumienie i niepewne datagramy w ramach jednego żądania Extended CONNECT, dla klientów przeglądarkowych obsługujących WebTransport.

Przewodniki po komponentach QUIC i HTTP/3:

Jedno żądanie przez HTTP/3

Taki sam kształt jak każdy inny klient HTTP sgcWebSockets: ustaw właściwości, obsłuż zdarzenie, wywołaj metodę.

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;

Klient i serwer współdzielą po obu stronach ten sam model połączenia, strumieni i datagramów. Pełna matryca funkcji →

Jeden port, jeden certyfikat, dwa protokoły

TsgcHTTP3Server obsługuje HTTP/3 przez QUIC na porcie UDP, podczas gdy powiązanie w stylu TsgcHTTP3ServerBridge z istniejącym serwerem HTTP/2 pozwala starszym klientom nadal działać przez TCP. Ogłoś Alt-Svc, a nowoczesne klienty same się zaktualizują.

HTTP3Server.pas
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;

Co to daje

Jeden komponent Delphi, który kończy QUIC, negocjuje h3 i kieruje każde żądanie do jednego handlera, z tym samym certyfikatem, który już wczytuje twój serwer HTTP/2.

Alt-Svc, więc aktualizacje są automatyczne

Zwykła odpowiedź HTTP/2 niesie nagłówek Alt-Svc: h3=":443". Klienty, które go rozumieją, otwierają QUIC przy kolejnym żądaniu, bez przekierowania czy drugiej domeny.

WebTransport, na tym samym porcie

Żądanie Extended CONNECT podnosi strumień do WebTransport, dając klientowi przeglądarkowemu dwukierunkowe strumienie i datagramy obok zwykłych żądań HTTP/3.

Natywny QUIC, bez zewnętrznej zależności

Handshake QUIC i TLS 1.3 działa na własnym silniku QUIC OpenSSL 3.5. Nie ma osobnej biblioteki QUIC do budowania czy dołączania.

OpenSSL 3.5 TLS 1.3 Alt-Svc QPACK WebTransport

Komponent serwera HTTP/3 →

sgcQUIC jest dodatkiem do sgcWebSockets Enterprise, więc licencja, kanał wsparcia i rytm aktualizacji są tymi, które już masz.

Dziewięć bibliotek, jedna skrzynka narzędziowa

sgcQUIC to jedna z dziewięciu bibliotek komponentów eSeGeCe dla Delphi, C++ Builder i .NET. Dzielą te same konwencje, dostarczane są z pełnym kodem źródłowym i wdrażane bez opłat licencyjnych.

sgcQUIC

Surowy transport QUIC oraz klient i serwer HTTP/3, z WebTransport. Dodatek do sgcWebSockets Enterprise.

Dowiedz się więcej →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API. Licencja Enterprise, na której bazuje sgcQUIC.

Dowiedz się więcej →

sgcHTML

Komponenty HTML i UI po stronie serwera na Bootstrap 5 i htmx. Serwuj wyrenderowany interfejs przez ten sam transport HTTP/3.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP dla Delphi oraz C++ Builder. Siedmiu dostawców LLM za jednym komponentem, a do tego MCP, embeddingi i mowa. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcMQ

Komponenty klienckie MQTT, AMQP 0.9.1 i 1.0, Apache Kafka oraz STOMP dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcAuth

Klient OAuth2, klient JWT i obsługa WebAuthn dla Delphi i C++ Builder. Loguj się u dowolnego dostawcy OAuth2/OIDC, wystawiaj i weryfikuj tokeny JWT oraz dodawaj do natywnych aplikacji logowanie kluczami dostępu (passkey). Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTTP

Klient HTTP/2, klient gRPC oraz klienty Google Cloud Pub/Sub, Calendar i FCM dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcREST

Serwer REST, serwer OpenAPI oraz komponenty klienta OpenAPI dla Delphi i C++ Builder. Publikuj API REST na podstawie kontraktu OpenAPI 3.x albo korzystaj z dowolnego API opisanego w OpenAPI. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcOpenAPI

Parser OpenAPI 3.x, natywny generator SDK w Pascalu, komponent serwera OpenAPI oraz ponad 1 195 gotowych SDK chmurowych.

Dowiedz się więcej →

sgcSign

XAdES, PAdES, CAdES i ASiC dla dokumentów, Authenticode, ClickOnce, NuGet i VSIX dla kodu.

Dowiedz się więcej →

sgcBiometrics

Windows Hello, czytniki linii papilarnych i Windows Biometric Framework dla Delphi i C++ Builder.

Dowiedz się więcej →

sgcIndy

Zaktualizowane komponenty Indy TCP/IP z nowoczesnym TLS, IPv6 i HTTP/2 od Delphi 7 do 13.

Dowiedz się więcej →

Zobacz cennik i edycje Pobierz bezpłatną wersję próbną

Co mówią programiści

Zaufali nam programiści Delphi, C++ Builder, Lazarus i .NET na całym świecie.

Wasza biblioteka sgcWebSockets jest bardzo przydatna i łatwa w konfiguracji. Tak trzymać!

Simone Moretti Programista Delphi

sgcWebSockets jest niesamowity, a wasze wsparcie jest najlepsze!

Christian Meyer Założyciel i CTO

Bardzo dziękuję za pomoc i wsparcie, uwielbiam wasze komponenty.

Mark Steinfeld CTO

Najnowsze wpisy na blogu

Zobacz wszystkie wpisy →

Oglądasz widok QUIC eSeGeCe.

Pokaż mi inne ujęcie →
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

Wdrażaj QUIC i HTTP/3 bez opuszczania swojego IDE

Surowy transport QUIC, klient i serwer HTTP/3 oraz WebTransport, na silniku QUIC OpenSSL 3.5. Pełny kod źródłowy, wdrożenie bez opłat licencyjnych, jako dodatek do sgcWebSockets Enterprise.