sgcQUIC Pomiń zbędne round-tripy. Natywny QUIC.

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.

Dodatek do sgcWebSockets Enterprise. Zobacz cennik →
  • RFC 9000, 9114, 9204
  • WebTransport (RFC 9220)
  • 0-RTT
  • Migracja połączenia
  • Delphi
  • C++ Builder
  • .NET
  • 4Komponenty na jednej zakładce palety
  • 4RFC: 9000, 9114, 9204 i 9220
  • 1Round-trip przed danymi, wobec trzech dla TCP plus TLS
  • 0-RTTPierwsze żądanie w pierwszym pakiecie wznowionej sesji
  • 3Języki: Delphi, C++ Builder i .NET
Dlaczego QUIC

To samo bezpieczeństwo TLS 1.3. Mniej podróży po sieci.

Uzgodnienie transportu, uzgodnienie TLS i pierwsze żądanie kosztują po jednym round-tripie w TCP. QUIC realizuje wszystkie trzy w jednej wymianie.

TCP + TLS 1.3 QUIC (HTTP/3) Klient Serwer Klient Serwer SYN SYN-ACK ACK ClientHello ServerHello, cert Finished GET /pets/42 200 OK 3 rundy przed danymi Initial + Handshake + GET Handshake + 200 OK 1 runda przed danymi Przy wznowionej sesji 0-RTT: GET + early data To samo bezpieczeństwo TLS 1.3. Mniej podróży po sieci.

TCP + TLS: trzy round-tripy

SYN, SYN-ACK i ACK otwierają gniazdo. ClientHello, ServerHello i Finished ustanawiają TLS. Dopiero potem wychodzi pierwsze żądanie.

QUIC: jeden round-trip

QUIC łączy uzgodnienie transportu i kryptografii w jedną wymianę, więc żądanie podróżuje razem z uzgodnieniem, a odpowiedź wraca razem z nim.

Wznowione: 0-RTT

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

Zobacz, jak działa

QUIC i HTTP/3 z Delphi, w kilka minut.

Szybki start z lektorem i napisami: serwer i klient HTTP/3, a potem surowe połączenie QUIC z wieloma strumieniami. Nic nie jest pobierane, dopóki nie naciśniesz odtwarzania.

Szybki start z sgcQUIC

Uruchom serwer i klienta HTTP/3 oraz otwórz surowe połączenie QUIC z Delphi.

  1. Klient HTTP/3Utwórz go, wywołaj Get z adresem URL i odczytaj odpowiedź. Metody, kody statusu i nagłówki są takie, jakie już znasz.
  2. Synchronicznie lub asynchronicznieObsłuż OnResponse i OnError, a następnie wywołaj GetAsync, a żądanie wykona się bez blokowania formularza.
  3. Serwer HTTP/3Utwórz TsgcHTTP3Server, podaj port, certyfikat i klucz prywatny oraz obsłuż OnH3Request.
  4. Surowy QUIC i wiele strumieniTsgcQUICClient samodzielnie, z EnableMultiStream dla niezależnych strumieni, każdy z zachowaniem kolejności i kontrolą przepływu.
  5. Przed wdrożeniemQUIC działa przez UDP, więc zapora, która otwiera tylko TCP 443, go zablokuje.
Cztery komponenty

Surowy QUIC albo HTTP/3 na wierzchu.

Use TsgcQUICClient and TsgcQUICServer for a bare transport with your own framing, or reach straight for TsgcHTTP3Client and TsgcHTTP3Server when the wire format is HTTP.

Klient i serwer QUIC

TsgcQUICClient and TsgcQUICServer speak raw QUIC: multiple independent streams on one encrypted connection, unreliable datagrams, and connection migration when the client's IP address changes mid-session.

Zobacz komponenty QUIC →

Klient i serwer HTTP/3

TsgcHTTP3Client and TsgcHTTP3Server layer HTTP semantics on top: request and response headers compressed with QPACK, Alt-Svc discovery, and the same methods and status codes your HTTP/2 code already uses.

Zobacz komponenty HTTP/3 →

Wznawianie sesji 0-RTT

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

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

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

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.

Zbudowane na standardach

QUIC i HTTP/3, co do joty zgodne z 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.

RFC 9000

Protokół transportowy QUIC: strumienie, datagramy, kontrola przepływu i migracja połączenia.

RFC 9114

HTTP/3, ta sama semantyka żądań i odpowiedzi co w HTTP/2, przenoszona przez strumienie QUIC.

RFC 9204

Kompresja nagłówków QPACK, zaprojektowana z myślą o dostarczaniu strumieni QUIC poza kolejnością.

RFC 9220

WebTransport nad HTTP/3, dwukierunkowe strumienie i datagramy w ramach jednego żądania Extended CONNECT.

Kod

Jedno żądanie przez HTTP/3.

Ten sam schemat co w każdym innym kliencie HTTP sgcWebSockets: ustaw właściwości, obsłuż zdarzenie, wywołaj metodę. Po stronie serwera to jeden komponent i jedna procedura obsługi.

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. Jeden port, jeden certyfikat, dwa protokołyTsgcHTTP3Server obsługuje HTTP/3 przez QUIC na porcie UDP. Połącz go z istniejącym serwerem HTTP/2, a starsi klienci nadal będą działać przez TCP, z tym samym certyfikatem, który już ładuje Twój serwer HTTP/2.
  2. Alt-Svc, więc aktualizacje są automatyczneZwykła odpowiedź HTTP/2 zawiera nagłówek Alt-Svc: h3=":443". Klienci, którzy go rozumieją, otwierają QUIC przy następnym żądaniu, bez przekierowania i bez drugiej domeny.
  3. 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.

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

Komponent serwera HTTP/3

Część sgcWebSockets

Dodatek do sgcWebSockets Enterprise.

Licencja, kanał wsparcia i rytm aktualizacji są te same, które już masz. Każda licencja obejmuje pełny kod źródłowy, rok aktualizacji i bezpłatną redystrybucję.

Single

Licencja dla 1 programisty. Użycie na jednej maszynie naraz.

€149

Team

Licencje dla 2 programistów. Użycie na dwóch maszynach naraz.

€249

Site

Nieograniczona liczba programistów. Wszystkie maszyny firmy.

€399

sgcQUIC wymaga sgcWebSockets Enterprise, które możesz dodać do tego samego zamówienia. Klient i serwer QUIC, klient i serwer HTTP/3, QPACK, Alt-Svc i WebTransport, dla Delphi, C++ Builder i .NET.

Zobacz cennik i edycje
Referencje

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

Wdrażaj QUIC i HTTP/3, nie opuszczając 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.

Więcej od eSeGeCe

Inne produkty eSeGeCe

sgcQUIC ma wspólne konwencje z pozostałymi bibliotekami komponentów eSeGeCe dla Delphi, C++ Builder i .NET. Są dostarczane z pełnym kodem źródłowym i można je wdrażać bez opłat licencyjnych.

sgcWebSockets

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

sgcHTML

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

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.

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.

sgcAuth

Klient OAuth2, klient JWT i obsługa WebAuthn dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

sgcHTTP

Serwer HTTP, 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.

sgcREST

Komponenty serwera REST, serwera OpenAPI i klienta OpenAPI dla Delphi i C++ Buildera. Samodzielne, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

sgcOpenAPI

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

sgcSign

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

sgcPDF

Twórz, edytuj, przeglądaj, podpisuj, cenzuruj i weryfikuj pliki PDF w czystym Object Pascalu, bez DLL do wdrożenia. Licencjonowany osobno.

sgcBiometrics

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

sgcIndy

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

Najnowsze wpisy na blogu

Zobacz wszystkie wpisy →

Oglądasz widok sgcQUIC 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