sgcHTTP HTTP sunucusu, HTTP/2 ve gRPC, Delphi'de yerel. Google Cloud da dahil.

Bir HTTP sunucusu ve beş istemci bileşeni. TsgcHTTPServer, HTTP uç noktalarını ve statik dosyaları kendi uygulamanızdan yayımlar. TsgcHTTP2Client, tek bir TLS bağlantısı üzerinde çoğullanmış akışlarla ve HPACK başlık sıkıştırmasıyla HTTP/2 konuşur. TsgcGRPCClient, onun üzerine kurulu bir gRPC istemcisidir ve unary ile akış tabanlı Protocol Buffers çağrıları içindir. Üç sınıf daha Google Cloud'a düz HTTPS üzerinden ulaşır: Pub/Sub, Calendar ve Firebase Cloud Messaging.

sgcWebSockets'in bağımsız bir paketi, Core çalışma zamanı pakete dahil. Fiyatlandırmaya bakın →
  • HTTP sunucusu
  • HTTP/2
  • gRPC
  • Google Cloud
  • HPACK & ALPN
  • Delphi 7'den 13'e
  • C++ Builder
  • 3Palet bileşeni: HTTP sunucusu, HTTP/2 istemcisi ve gRPC istemcisi
  • 5Toplam istemci sınıfı
  • 3Google Cloud hizmeti: Pub/Sub, Calendar ve FCM
  • 1Bağımsız kurulum paketi, Core çalışma zamanı pakete dahil
  • 100%Her lisansla birlikte gelen kaynak kodu
Çalışırken izleyin

sgcHTTP'yi iki dakikada görün.

Seslendirmeli ve altyazılı bir hızlı başlangıç: tek bir bağlantı üzerinden çok sayıda istek gönderen bir HTTP/2 istemcisi, ardından aynı taşıma üzerinde giden bir gRPC çağrısı, hepsi Delphi ile. Oynat düğmesine basana kadar hiçbir şey indirilmez.

sgcHTTP hızlı başlangıç

Delphi'den bir HTTP/2 uç noktasını çağırın ve bir gRPC çağrısı yapın.

  1. HTTP/2 istemcisini oluşturunBir TsgcHTTP2Client oluşturun, OnHTTP2Response olayını işleyin ve Get çağırın. h2 protokolü, TLS el sıkışması sırasında ALPN ile müzakere edilir.
  2. Çok istek, tek bağlantıİstekler tek bir TCP bağlantısını bağımsız akışlar olarak paylaşır, bu yüzden yavaş bir yanıt arkasındaki diğerlerini engellemez.
  3. Aynı taşıma üzerinde gRPCHTTP/2 istemcisini gRPC istemcisine atayın ve bir yöntemi hizmet ve adıyla çağırın. Mesajlar uzunluk önekli Protocol Buffers olarak taşınır.
  4. Dört RPC deseniUnary, sunucu akışı, istemci akışı ve çift yönlü akış; her birinin TsgcGRPCClient üzerinde kendi yöntemi vardır.
İki palet bileşeni

Bir HTTP/2 istemcisi ve üzerinde çalışan gRPC.

Her iki bileşen de sgcHTTP biriminde bildirilir ve TsgcGRPCClient, kendi HTTP/2 bağlantısını Client özelliği üzerinden taşır.

sgcHTTP hızlı başlangıcındaki HTTP/2 istemcisi: Delphi kodu ve tek bir soket üzerinde uçuşan altı istek yan yana

Tek bir TLS bağlantısı üzerinden çoğullanmış akışlar

TsgcHTTP2Client, HTTP/2 (RFC 9113) konuşur: birden çok istek, tek bir TCP bağlantısını bağımsız akışlar olarak paylaşır. Başlıklar HPACK ile sıkıştırılır ve h2, TLS el sıkışması sırasında ALPN ile müzakere edilir. Tüm fiiller kapsanır: Get, Post, Put, Patch, Delete ve Options; her birinin eşzamanlı bir çağrısı ve bir Async eşi vardır.

sgcHTTP hızlı başlangıcındaki gRPC: taşıma olarak bir TsgcHTTP2Client kullanan bir TsgcGRPCClient ve listelenmiş dört RPC deseni

HTTP/2 istemcisi üzerinde unary ve akış tabanlı RPC

TsgcGRPCClient, çoğullanmış bağlantıyı devralır ve üzerine gRPC tel biçimini ekler. Call ve CallAsync unary RPC'leri kapsar, ServerStreamingCall tek bir isteğe verilen yanıt akışını işler, OpenClientStream ve OpenBidiStream ise istemci akışını ve çift yönlü akışı kapsar. RetryPolicy, Interceptors ve ServiceConfig, çağrı noktalarına dokunmadan yeniden deneme davranışı ve çapraz kesen mantık ekler.

Bir sunucu, beş istemci sınıfı

Beş değil, iki bağımlılık.

Beş sınıf, altta neye ihtiyaç duyduklarına göre net biçimde ayrılır. HTTP/2 ve gRPC, ALPN gerektirir, bu da sgcCustomIndy demektir. Google Cloud, HTTPS ve bir servis hesabından başka bir şey gerektirmez; bunu da pakete dahil Core çalışma zamanı zaten sağlar. HTTP sunucusu da bu çalışma zamanının kendisinden gelir.

HTTP sunucusu

TsgcHTTPServer, HTTP uç noktalarını kendi uygulamanızdan yayımlar. Port'u ayarlayın, OnCommandGet'i işleyin, Active'i ayarlayın; her istek kodunuza ulaşır. OnCommandOther, PUT ve DELETE gibi fiilleri kapsar. Pakete dahil Core çalışma zamanıyla birlikte gelir.

Statik dosyalar ve yüklemeler

DocumentRoot'u bir klasöre yönlendirin; sunucu statik dosyaları oradan döndürür. HTTPUploadFiles yüklenen dosyaları diske kaydeder, MaxRequestBodySize istek gövdelerini sınırlar, HTTPCompression ve KeepAlive ise yanıtları küçük, bağlantıları açık tutar.

Üretime hazır

SSL ve SSLOptions TLS'i etkinleştirir, Authentication ve OnAuthentication uç noktaları korur, SessionState oturumları izler, ThreadPool ve MaxConnections ise ölçeklenmeyi denetler. WebSocket sunucusuyla aynı motor, WebSocket kısmı olmadan.

HTTP/2

TsgcHTTP2Client, bağımsız akışları tek bir TLS bağlantısı üzerinde çoğullar, başlıkları HPACK ile sıkıştırır ve h2'yi ALPN ile müzakere eder. Connect, Get, Post, Put, Patch, Delete ve Options, eşzamanlı veya Async.

gRPC

TsgcGRPCClient, HTTP/2 istemcisi üzerinde çalışır: HTTP/2 akışları üzerinden uzunluk önekli Protocol Buffers mesajları; unary, sunucu akışı, istemci akışı ve çift yönlü RPC'ler, ayrıca yeniden deneme ilkesi ve interceptor'lar.

Google Cloud, düz HTTPS

TsgcHTTPGoogleCloud_PubSub_Client, TsgcHTTPGoogleCloud_Calendar_Client ve TsgcHTTPGoogleCloud_FCM_Client, bir Google servis hesabıyla kimlik doğrulayarak Pub/Sub, Calendar ve Firebase Cloud Messaging'e ulaşır. Hiçbiri sgcCustomIndy gerektirmez.

Sunucu push ve parçalı gövdeler

Olaylar bağlantı yaşam döngüsünü açığa çıkarır: OnHTTP2Connect, OnHTTP2Response, parçalı gövdeler için OnHTTP2ResponseFragment, sunucu push için OnHTTP2PushPromise, OnHTTP2GoAway ve OnHTTP2Disconnect. Akış yaşam döngüsüyle ilgili hiçbir şey sizden gizlenmez.

İkisi için bir bağımlılık, üçü için sıfır

HTTP/2 ve gRPC istemcileri, sgcWebSockets ile aynı platform aralığını kapsayan sgcCustomIndy üzerine kuruludur. Google Cloud istemcileri düz HTTPS olduğundan Core çalışma zamanının çalıştığı her yerde çalışır. Delphi 7'den RAD Studio 13'e ve C++ Builder.

Tam kaynak kodu kutuda

Her lisans, HTTP sunucusunun, beş istemcinin ve pakete dahil çalışma zamanının tam kaynağını içerir, böylece tel düzeyindeki uygulamalar kendi hata ayıklayıcınızda adım adım izlenebilir. Dağıtım telifsizdir.

Kod

HTTP sunucusu, HTTP/2 ve gRPC, yan yana.

Bileşeni oluşturun, bir port ayarlayın ya da bir ana bilgisayara yönlendirin, olayı bağlayın ve çalıştırın. Aynı kod Delphi 7'den 13'e ve C++ Builder'da derlenir.

uses
  sgcHTTP;
var
  HTTP2: TsgcHTTP2Client;
begin
  // HTTP/2: multiplexed requests over one TLS connection
  HTTP2 := TsgcHTTP2Client.Create(nil);
  HTTP2.Host := 'https://api.example.com';
  HTTP2.OnHTTP2Response := HTTP2Response;
  HTTP2.Active := True;

  HTTP2.GetAsync('/v1/status');
end;

procedure TForm1.HTTP2Response(Sender: TObject;
  const Connection: TsgcHTTP2ConnectionClient;
  const Request: TsgcHTTP2RequestProperty;
  const Response: TsgcHTTP2ResponseProperty);
begin
  Memo1.Lines.Add(Response.DataString);
end;
uses
  sgcHTTP;
var
  GRPC: TsgcGRPCClient;
begin
  // gRPC: built on the HTTP/2 client, unary and streaming RPC
  GRPC := TsgcGRPCClient.Create(nil);
  GRPC.Client.Host := 'https://grpc.example.com';
  GRPC.OnGRPCResponse := GRPCResponse;

  GRPC.CallAsync('example.OrderService', 'GetOrder', RequestBytes);
end;

procedure TForm1.GRPCResponse(Sender: TObject;
  const aResponse: TsgcGRPCResponse);
begin
  Memo1.Lines.Add(aResponse.DataString);
end;
uses
  sgcHTTP_Server;
var
  Server: TsgcHTTPServer;
begin
  // HTTP server: endpoints and static files
  Server := TsgcHTTPServer.Create(nil);
  Server.Port := 8080;
  Server.DocumentRoot := 'C:\www';
  Server.OnCommandGet := ServerCommandGet;
  Server.Active := True;
end;

procedure TForm1.ServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo;
  AResponseInfo: TIdHTTPResponseInfo);
begin
  if ARequestInfo.Document = '/api/status' then
  begin
    AResponseInfo.ContentType := 'application/json';
    AResponseInfo.ContentText := '{"status":"ok"}';
  end;
end;
  1. İstemciyi oluşturunİstemciler sgcHTTP biriminde, sunucu ise sgcHTTP_Server biriminde bulunur. TsgcGRPCClient, kendi HTTP/2 bağlantısını Client özelliği üzerinden taşır.
  2. Bir ana bilgisayara yönlendirinBir https:// ana bilgisayarı yeterlidir. ALPN, TLS el sıkışması sırasında h2'yi müzakere eder ve HPACK başlıkları sıkıştırır.
  3. Yanıt olayını bağlayınOnHTTP2Response ve OnGRPCResponse, çözülmüş gövdeyi istek ve bağlantıyla birlikte size teslim eder.
  4. Eşzamanlı ya da değil, gönderinHer fiilin ve her RPC'nin engelleyen bir çağrısı ve bir Async eşi vardır, böylece arayüz iş parçacığı serbest kalır.

Object Pascal'da ve C++ Builder'da aynı yapı. Tam özellik matrisi →

Satın almadan önce

Önce bilmeye değer iki şey.

sgcHTTP'nin sizden ne istediği ve ne istemediği. İki yanıt da kısadır ve ikisi de küçük harflerle yazılmış notlarda değil, bu sayfadadır.

İstemci başına bağımlılıklar
istemci                             sgcCustomIndy gerekir
TsgcHTTPServer                      hayır, Core çalışma zamanıyla gelir
TsgcHTTP2Client                     evet, ALPN için
TsgcGRPCClient                      evet, TsgcHTTP2Client üzerinde çalışır
TsgcHTTPGoogleCloud_PubSub_Client   hayır, düz HTTPS
TsgcHTTPGoogleCloud_Calendar_Client hayır, düz HTTPS
TsgcHTTPGoogleCloud_FCM_Client      hayır, düz HTTPS

HTTP/2, h2'yi TLS el sıkışması sırasında ALPN ile müzakere eder.
  RAD Studio ile gelen standart Indy kitaplığı ALPN
  desteğine sahip değildir, bu yüzden HTTP/2 ve gRPC
  bunun yerine sgcCustomIndy üzerine kurulmuştur.

sgcHTTP bağımsızdır

sgcWebSockets Core çalışma zamanı dahildir: HTTP sunucusu, her istemcinin isteklerini gönderdiği HTTP/TLS istemci yığını ve Google Cloud yanıtlarını çözen JSON katmanı. Tek kurulum paketi, kutuda tam kaynak kodu.

HTTP/2 ve gRPC, sgcCustomIndy gerektirir

ALPN müzakeresi standart Indy kitaplığı tarafından desteklenmez, bu yüzden TsgcHTTP2Client ve onun üzerinden TsgcGRPCClient, bunun yerine sgcCustomIndy üzerine kuruludur. sgcHTTP sipariş ettiğinizde her zaman dahildir ve gösterilen fiyat bunu zaten kapsar.

Google Cloud yalnızca HTTPS gerektirir

Üç Google Cloud istemcisi, bir Google servis hesabının proje kimliği, istemci e-postası ve özel anahtarıyla kimlik doğrular ve REST API'lerini Core çalışma zamanının düz HTTPS yığını üzerinden çağırır. Yerel kitaplık yok, sgcCustomIndy yok.

Delphi ve C++ Builder

sgcHTTP, Delphi 7'den RAD Studio 13'e ve C++ Builder'ı hedefler. Aynı bileşenler sgcWebSockets Enterprise içinde de yer alır, bu yüzden mevcut bir Enterprise veya All-Access lisansı sizi zaten kapsıyor olabilir. Deneme kurulum paketi sgcWebSockets All-Access denemesidir, bu yüzden HTTP sunucusu ve beş istemcinin tamamı bugün değerlendirilebilir.

sgcHTTP, bir üretici SDK'sını sarmalamak yerine yayımlanmış HTTP/2, gRPC ve Google Cloud REST yüzeylerini uygular; bu yüzden akışlar, başlıklar, RPC'ler ve push bildirimleri birinci sınıf yöntemler ve olaylardır, tam kaynak kodu ise aradaki hiçbir şeyin kara kutu olmadığı anlamına gelir.

sgcWebSockets'in bir parçası

sgcWebSockets'in tek bir paketi, kendi başına lisanslanır.

sgcHTTP, üzerine kurulduğu sgcWebSockets Core çalışma zamanını pakete dahil eder ve HTTP/2 ile gRPC için gereken sgcCustomIndy eklentisi her zaman dahildir. Her lisans tam kaynak kodu ve telifsiz dağıtımla gelir.

Single

1 geliştirici lisansı. Aynı anda tek bir makinede kullanın.

€398

Team

2 geliştirici lisansı. Aynı anda iki makinede kullanın.

€648

Site

Sınırsız geliştirici. Şirketteki tüm makineler.

€1,048

Delphi ve C++ Builder için HTTP/2, gRPC ve Google Cloud istemci bileşenleri; sgcWebSockets Core çalışma zamanı pakete dahil. Zaten sgcWebSockets Enterprise kullanıyor musunuz? Aynı bileşenler orada da var.

Fiyatlandırmayı ve lisansları görüntüleyin
Referanslar

Geliştiriciler Ne Diyor

Dünya çapında Delphi, C++ Builder, Lazarus ve .NET geliştiricilerinin güvendiği.

sgcWebSockets kütüphaneniz çok kullanışlı ve kurulumu kolay. İyi çalışmalarınızı sürdürün!
Simone Moretti Delphi Geliştiricisi
sgcWebSockets harika ve desteğiniz en iyisi!
Christian Meyer Kurucu ve CTO
Yardımınız ve desteğiniz için çok teşekkürler, bileşenlerinize bayılıyorum.
Mark Steinfeld CTO

Yerel koddan modern HTTP, gRPC ve Google Cloud.

Bir HTTP sunucusu, çoğullamalı HTTP/2, akış tabanlı gRPC ve üç Google Cloud istemcisi; sgcWebSockets Core çalışma zamanı pakete dahil ve kutuda tam kaynak kodu.

eSeGeCe'den daha fazlası

eSeGeCe'nin Diğer Ürünleri

sgcHTTP, Delphi, C++ Builder ve .NET için diğer eSeGeCe bileşen kitaplıklarıyla aynı kuralları paylaşır. Tam kaynak koduyla gelirler ve telifsiz dağıtılırlar.

sgcWebSockets

Delphi, C++ Builder, Lazarus ve .NET için WebSocket, HTTP/2, MQTT, AMQP, WebRTC, yapay zeka ve 30+ API entegrasyonu. Enterprise sürümü gRPC'yi de içerir.

sgcREST

Delphi ve C++ Builder için REST sunucusu, OpenAPI sunucusu ve OpenAPI istemci bileşenleri. REST API'lerini bir OpenAPI 3.x sözleşmesinden yayımlayın veya OpenAPI ile tanımlanmış herhangi bir API'yi kullanın.

sgcAuth

Delphi ve C++ Builder için OAuth2 istemcisi, JWT istemcisi ve WebAuthn desteği. Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı pakete dahildir.

sgcMQ

Delphi ve C++ Builder için MQTT, AMQP 0.9.1 ve 1.0, Apache Kafka ve STOMP istemci bileşenleri. Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı pakete dahildir.

sgcSocial

Delphi ve C++ Builder için Telegram ve WhatsApp Business istemci bileşenleri. Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı pakete dahildir.

sgcAI

Delphi ve C++ Builder için yapay zeka, LLM ve MCP bileşenleri. Tek bir bileşenin arkasında yedi LLM sağlayıcısı, ayrıca MCP, embedding'ler ve konuşma.

sgcHTML

Delphi, C++ Builder ve .NET için Bootstrap 5 ve htmx üzerinde sunucu tarafı HTML ve arayüz bileşenleri.

sgcQUIC

Ham QUIC taşıması ile WebTransport destekli bir HTTP/3 istemcisi ve sunucusu. sgcWebSockets Enterprise için bir eklenti.

sgcOpenAPI

OpenAPI 3.x ayrıştırıcısı, yerel Pascal SDK oluşturucusu, OpenAPI sunucu bileşeni ve 1.195+ hazır bulut SDK'sı.

sgcSign

Belgeler için XAdES, PAdES, CAdES ve ASiC; kod için Authenticode, ClickOnce, NuGet ve VSIX.

sgcPDF

Dağıtılacak DLL olmadan, saf Object Pascal ile PDF dosyaları oluşturun, düzenleyin, görüntüleyin, imzalayın, karartın ve doğrulayın. Kendi başına lisanslanır.

sgcBiometrics

Delphi ve C++ Builder için Windows Hello, parmak izi sensörleri ve Windows Biometric Framework.

sgcIndy

Delphi 7'den 13'e kadar modern TLS, IPv6 ve HTTP/2 destekli güncellenmiş Indy TCP/IP bileşenleri.

Blogdan Son Yazılar

Tüm yazıları görüntüleyin →

eSeGeCe'nin HTTP sunucusu, HTTP/2 ve gRPC görünümünü görüyorsunuz.

Bana başka bir açı gösterin →
30 Günlük Para İade GarantisiMemnun kalmadınız mı? Satın alımdan sonraki 30 gün içinde tam para iadesi talep edin. İade politikasına bakın