A HTTP Server API permite que aplicações se comuniquem por HTTP sem utilizar o Microsoft Internet Information Server (IIS).
A HTTP Server API permite que as aplicações se comuniquem por HTTP sem utilizar o Microsoft Internet Information Server (IIS). As aplicações podem se registrar para receber requisições HTTP de URLs específicas, receber requisições WebSocket e enviar respostas WebSocket. A HTTP Server API inclui suporte a SSL para que as aplicações possam trocar dados por conexões HTTP seguras sem IIS. Ela também foi projetada para trabalhar com I/O completion ports.
O servidor suporta os seguintes protocolos:
Por padrão, este componente requer que sua aplicação seja executada em modo Administrador, para o registro de URL. Se a URL já tiver sido registrada usando uma ferramenta externa como o netsh, você pode executar sem direitos de administrador; desabilite a propriedade BindingOptions.ConfigureSSLCertificate para permitir iniciar a aplicação sem direitos de administrador.
Defina o FastMM4/FastMM5 como a primeira unit do seu projeto.
Siga os passos abaixo para configurar este componente:
1. Coloque um componente TsgcWebSocketServer_HTTPAPI no formulário
2. Defina o endereço e a porta de escuta:
Server.Host := '127.0.0.1';
Server.Port := 80;
3. Defina as Specifications permitidas; por padrão, todas as especificações são permitidas.
RFC6455: é a especificação WebSocket padrão e recomendada.
Hixie76: é um rascunho e só é recomendado estabelecer conexões Hixie76 se você quiser fornecer suporte a navegadores antigos como o Safari 4.2
5. Crie um procedimento e defina a propriedade Active = true
O servidor HTTP.SYS utiliza a reserva de URL para atribuir quais endpoints de URL serão utilizados pelo servidor HTTP.SYS.
Reserva Básica de URL
Este é o modo mais simples de configurar o Servidor; basicamente você só define o Host e a Port que o servidor HTTP.SYS tratará.
Exemplo: se o seu servidor é executado no IP 127.0.0.1 e na Porta 80, basta definir as seguintes propriedades
Server.Host := '127.0.0.1';
Server.Port := 80;
Se o servidor for executado em mais de um IP e você quiser fazer bind em múltiplos IPs, utilize o método NewBinding. Primeiro limpe as propriedades Host e Bindings e então utilize o método NewBinding para definir todos os Bindings do Servidor.
Server.Host := '';
Server.Bindings.Clear;
Server.Bindings.NewBinding('127.0.0.1', 80, '');
Server.Bindings.NewBinding('80.50.55.11', 80, '');
Se o servidor exigir conexões SSL, faça o seguinte para definir o Host e a Port que serão usados para tratar as conexões SSL.
Server.Host := '127.0.0.1';
Server.Port := 443;
Server.SSL := True;
Server.SSLOptions.Hash := 'CERTIFICATE_HASH';
Se o servidor exigir conexões SSL com múltiplos endereços IP, primeiro limpe as propriedades Host e Bindings e então registre os novos Bindings.
Server.Host := '';
Server.Bindings.Clear;
Server.Bindings.NewBinding('127.0.0.1', 443, '', true, 'CERTIFICATE_HASH1');
Server.Bindings.NewBinding('80.50.55.11', 443, '', true, 'CERTIFICATE_HASH2');