TsgcHTTPServer

Componente server HTTP puro — lo stesso motore di TsgcWebSocketHTTPServer, senza supporto WebSocket, per pubblicare servizi solo HTTP come un server MCP.

Introduzione

TsgcHTTPServer è un componente server HTTP puro: condivide lo stesso motore sottostante di TsgcWebSocketHTTPServer (document root, sessioni, keep-alive, compressione HTTP, HTTP/2, HTTP/3, TLS, autenticazione, pool di thread, motori IOCP/EPOLL, caricamento file, firewall, rate limiter...) ma non esegue mai l'upgrade di una connessione al protocollo WebSocket. Non esiste alcun handshake, alcun frame, e nessuno dei membri esclusivi di WebSocket (Extensions, Specifications, HeartBeat, QueueOptions, OnMessage/OnBinary/OnFragmented/OnHandshake, LoadBalancer/OnLoadBalancer*, Groups) è pubblicato su di esso.

Utilizzare TsgcHTTPServer quando l'applicazione deve pubblicare solo un endpoint HTTP e non si desidera collegare alcun codice WebSocket, ad esempio per ospitare un server MCP (Model Context Protocol), un'API REST/JSON o un semplice server di file/documenti. Se è necessario anche il supporto WebSocket sulla stessa porta, utilizzare invece TsgcWebSocketHTTPServer.

Seguire i passi seguenti per configurare questo componente:

1. Inserire un componente TsgcHTTPServer nel form

2. Impostare Port (il valore predefinito è 80). Se si è protetti da un firewall, probabilmente sarà necessario configurarlo.

3. Gestire OnCommandGet / OnCommandOther per rispondere alle richieste, oppure impostare DocumentRoot per servire automaticamente i file statici.

AResponseInfo.ContentText := '<HTML><HEADER>TEST</HEAD><BODY>Hello!</BODY></HTML>';

 

OnHTTPUploadBeforeCreatePostStream: questo evento viene chiamato dopo che le intestazioni sono state lette e prima che il post stream venga creato.

 

* In alcuni casi, si potrebbe riscontrare un elevato consumo di CPU dovuto a connessioni non richieste; in tal caso, è sufficiente restituire un errore 500 oppure chiudere la connessione da OnUnknownProtocol.

 

4. Creare una procedura e impostare la proprietà Active = true.

 

Riferimento

Guide